Compare commits
No commits in common. "production" and "master" have entirely different histories.
production
...
master
360
LICENCE.md
Normal file
@ -0,0 +1,360 @@
|
||||
# GNU GENERAL PUBLIC LICENSE
|
||||
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
<https://fsf.org/>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
## Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom
|
||||
to share and change it. By contrast, the GNU General Public License is
|
||||
intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on,
|
||||
we want its recipients to know that what they have is not the
|
||||
original, so that any problems introduced by others will not reflect
|
||||
on the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at
|
||||
all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
## TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
**0.** This License applies to any program or other work which
|
||||
contains a notice placed by the copyright holder saying it may be
|
||||
distributed under the terms of this General Public License. The
|
||||
"Program", below, refers to any such program or work, and a "work
|
||||
based on the Program" means either the Program or any derivative work
|
||||
under copyright law: that is to say, a work containing the Program or
|
||||
a portion of it, either verbatim or with modifications and/or
|
||||
translated into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".) Each licensee
|
||||
is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the Program
|
||||
(independent of having been made by running the Program). Whether that
|
||||
is true depends on what the Program does.
|
||||
|
||||
**1.** You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
**2.** You may modify your copy or copies of the Program or any
|
||||
portion of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
|
||||
**a)** You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
|
||||
**b)** You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any part
|
||||
thereof, to be licensed as a whole at no charge to all third parties
|
||||
under the terms of this License.
|
||||
|
||||
|
||||
**c)** If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such interactive
|
||||
use in the most ordinary way, to print or display an announcement
|
||||
including an appropriate copyright notice and a notice that there is
|
||||
no warranty (or else, saying that you provide a warranty) and that
|
||||
users may redistribute the program under these conditions, and telling
|
||||
the user how to view a copy of this License. (Exception: if the
|
||||
Program itself is interactive but does not normally print such an
|
||||
announcement, your work based on the Program is not required to print
|
||||
an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
**3.** You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
|
||||
**a)** Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections 1
|
||||
and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
|
||||
**b)** Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your cost of
|
||||
physically performing source distribution, a complete machine-readable
|
||||
copy of the corresponding source code, to be distributed under the
|
||||
terms of Sections 1 and 2 above on a medium customarily used for
|
||||
software interchange; or,
|
||||
|
||||
|
||||
**c)** Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is allowed
|
||||
only for noncommercial distribution and only if you received the
|
||||
program in object code or executable form with such an offer, in
|
||||
accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
**4.** You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt otherwise
|
||||
to copy, modify, sublicense or distribute the Program is void, and
|
||||
will automatically terminate your rights under this License. However,
|
||||
parties who have received copies, or rights, from you under this
|
||||
License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
**5.** You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
**6.** Each time you redistribute the Program (or any work based on
|
||||
the Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
**7.** If, as a consequence of a court judgment or allegation of
|
||||
patent infringement or for any other reason (not limited to patent
|
||||
issues), conditions are imposed on you (whether by court order,
|
||||
agreement or otherwise) that contradict the conditions of this
|
||||
License, they do not excuse you from the conditions of this License.
|
||||
If you cannot distribute so as to satisfy simultaneously your
|
||||
obligations under this License and any other pertinent obligations,
|
||||
then as a consequence you may not distribute the Program at all. For
|
||||
example, if a patent license would not permit royalty-free
|
||||
redistribution of the Program by all those who receive copies directly
|
||||
or indirectly through you, then the only way you could satisfy both it
|
||||
and this License would be to refrain entirely from distribution of the
|
||||
Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
**8.** If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
**9.** The Free Software Foundation may publish revised and/or new
|
||||
versions of the General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Program does not specify a
|
||||
version number of this License, you may choose any version ever
|
||||
published by the Free Software Foundation.
|
||||
|
||||
**10.** If you wish to incorporate parts of the Program into other
|
||||
free programs whose distribution conditions are different, write to
|
||||
the author to ask for permission. For software which is copyrighted by
|
||||
the Free Software Foundation, write to the Free Software Foundation;
|
||||
we sometimes make exceptions for this. Our decision will be guided by
|
||||
the two goals of preserving the free status of all derivatives of our
|
||||
free software and of promoting the sharing and reuse of software
|
||||
generally.
|
||||
|
||||
**NO WARRANTY**
|
||||
|
||||
**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
## How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these
|
||||
terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to
|
||||
attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
one line to give the program's name and an idea of what it does.
|
||||
Copyright (C) yyyy name of author
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper
|
||||
mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
|
||||
type `show w'. This is free software, and you are welcome
|
||||
to redistribute it under certain conditions; type `show c'
|
||||
for details.
|
||||
|
||||
The hypothetical commands \`show w' and \`show c' should show the
|
||||
appropriate parts of the General Public License. Of course, the
|
||||
commands you use may be called something other than \`show w' and
|
||||
\`show c'; they could even be mouse-clicks or menu items--whatever
|
||||
suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or
|
||||
your school, if any, to sign a "copyright disclaimer" for the program,
|
||||
if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright
|
||||
interest in the program `Gnomovision'
|
||||
(which makes passes at compilers) written
|
||||
by James Hacker.
|
||||
|
||||
signature of Moe Ghoul, 1 April 1989
|
||||
Moe Ghoul, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library,
|
||||
you may consider it more useful to permit linking proprietary
|
||||
applications with the library. If this is what you want to do, use the
|
||||
[GNU Lesser General Public
|
||||
License](https://www.gnu.org/licenses/lgpl.html) instead of this
|
||||
License.
|
||||
12
LICENSE
@ -1,12 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright 2025 Carle-Margueritte Alexandre
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this documentation to deal in the Documentation without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Documentation, and to
|
||||
permit persons to whom the Documentation is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
THE DOCUMENTATION IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|
||||
18
Makefile
@ -5,17 +5,15 @@ VPS_PATH = /var/www/website
|
||||
|
||||
.PHONY: deploy
|
||||
|
||||
server:
|
||||
go run server.go | cat &
|
||||
|
||||
deploy:
|
||||
@echo "⚙️ Switching to production..."
|
||||
git checkout production
|
||||
@echo "🔁 Merging master into production..."
|
||||
git merge master
|
||||
@echo "📤 Pushing production to gitea..."
|
||||
git add .
|
||||
git commit -m "deploying"
|
||||
git push origin production
|
||||
git push gitea production
|
||||
@echo "🔙 Switching back to master..."
|
||||
git checkout master
|
||||
@echo "🌐 Deploying to VPS..."
|
||||
ssh $(VPS_USER)@$(VPS_HOST) -p $(SSH_PORT) "cd $(VPS_PATH) && git checkout production && git pull origin production"
|
||||
@echo "✅ Deployment done!"
|
||||
|
||||
|
||||
sync:
|
||||
ssh $(VPS_USER)@$(VPS_HOST) -p $(SSH_PORT) "cd $(VPS_PATH) && git checkout production && git pull origin production"
|
||||
|
||||
@ -9,10 +9,5 @@ ___
|
||||
|
||||
## Site
|
||||
|
||||
https://neocities.org
|
||||
https://lazer-bunny.neocities.org/
|
||||
https://faeraphim.net/main/index.htm
|
||||
https://lilithdev.neocities.org/
|
||||
<a href="https://july.lol"><img src="https://july.lol/img/lonelyjulybutton.gif" alt="july.lol"></a>
|
||||
|
||||
___
|
||||
git
|
||||
@ -1,5 +1,17 @@
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
|
||||
int main(void) {
|
||||
#ifdef _WIN32
|
||||
|
||||
|
||||
#else
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
return (0);
|
||||
}
|
||||
|
||||
19
server.go
@ -1,19 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fs := http.FileServer(http.Dir("./sterling"))
|
||||
source := http.FileServer(http.Dir("./sleepeesoftware.fr"))
|
||||
http.Handle("/sterling/", fs)
|
||||
http.Handle("/", source)
|
||||
|
||||
log.Println("Serving at http://localhost:8080")
|
||||
err := http.ListenAndServe(":8080", nil)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 15 KiB |
BIN
sleepeesoftware.fr/assets/DJ_Ten_MagnetoSphere.wav
Normal file
@ -0,0 +1,4 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=https://notube.lol/
|
||||
HostUrl=https://s54.notube.lol/download.php?token=5f15cd14334e4930e9c79f9d74ad31da&key=amwl7fyh9dhxt2au
|
||||
|
Before Width: | Height: | Size: 145 KiB |
BIN
sleepeesoftware.fr/assets/Michael_Cassette_Crocketts_Theme.wav
Normal file
@ -0,0 +1,4 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=https://notube.lol/
|
||||
HostUrl=https://s43.notube.lol/download.php?token=23a13a3144dd96cdd58f3b64daebea4c&key=7pxuaym283gtz06u
|
||||
|
Before Width: | Height: | Size: 168 KiB |
@ -0,0 +1,4 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=https://notube.lol/
|
||||
HostUrl=https://s44.notube.lol/download.php?token=88de54461ec0988ec579bb2164ec06ed&key=6wi22j8j1ccduili
|
||||
|
Before Width: | Height: | Size: 60 KiB |
BIN
sleepeesoftware.fr/assets/Project_2.ogg
Normal file
3
sleepeesoftware.fr/assets/RpdC.gif:Zone.Identifier
Normal file
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
HostUrl=https://i.gifer.com/embedded/download/RpdC.gif
|
||||
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 27 KiB |
BIN
sleepeesoftware.fr/assets/neon-dreams-vice-city-theme.mp3
Normal file
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 26 KiB |
23
sleepeesoftware.fr/css/background.css
Normal file
@ -0,0 +1,23 @@
|
||||
.grid-bg {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: repeating-linear-gradient(
|
||||
to right,
|
||||
rgba(0, 255, 255, 0.1) 0px,
|
||||
rgba(0, 255, 255, 0.1) 1px,
|
||||
transparent 1px,
|
||||
transparent 40px
|
||||
),
|
||||
repeating-linear-gradient(
|
||||
to bottom,
|
||||
rgba(0, 255, 255, 0.1) 0px,
|
||||
rgba(0, 255, 255, 0.1) 1px,
|
||||
transparent 1px,
|
||||
transparent 40px
|
||||
);
|
||||
background-color: var(--background-color);
|
||||
z-index: -4;
|
||||
}
|
||||
50
sleepeesoftware.fr/css/base.css
Normal file
@ -0,0 +1,50 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Orbitron', sans-serif;
|
||||
color: var(--text-color);
|
||||
background: var(--background-color);
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
body::before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0; left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 2;
|
||||
pointer-events: none;
|
||||
background: url('/assets/RpdC.gif') repeat;
|
||||
opacity: 0.05;
|
||||
mix-blend-mode: screen;
|
||||
}
|
||||
|
||||
body::after {
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0; left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
background:
|
||||
repeating-linear-gradient(
|
||||
0deg,
|
||||
--scanline-color 0px,
|
||||
--scanline-color 1px,
|
||||
transparent 1px,
|
||||
transparent 4px
|
||||
);
|
||||
animation: scanlines 0.1s linear infinite;
|
||||
}
|
||||
|
||||
main section h2 {
|
||||
color: var(--terminal-border);
|
||||
text-shadow: 0 0 5px var(--terminal-border);
|
||||
margin-top: 2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
54
sleepeesoftware.fr/css/effects.css
Normal file
@ -0,0 +1,54 @@
|
||||
.crt-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
mix-blend-mode: screen;
|
||||
animation: flicker 0.5s infinite;
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: inset 0 0 40px var(--glow-color);
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.fade-in {
|
||||
animation: fadeIn 0.5s ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
@keyframes scanlines {
|
||||
0% { transform: translateY(0); }
|
||||
50% { transform: translateY(-2px); }
|
||||
100% { transform: translateY(0); }
|
||||
}
|
||||
|
||||
@keyframes vhs-static {
|
||||
0% { transform: translate(0, 0); }
|
||||
25% { transform: translate(-1px, 1px); }
|
||||
50% { transform: translate(1px, -0.5px); }
|
||||
75% { transform: translate(-0.5px, 0.5px); }
|
||||
100% { transform: translate(0.5px, -1px); }
|
||||
}
|
||||
|
||||
@keyframes flicker {
|
||||
0%, 100% { opacity: 0.8; }
|
||||
50% { opacity: 1; }
|
||||
}
|
||||
|
||||
@keyframes rgb-split {
|
||||
0%, 100% {
|
||||
transform: translate(0px, 0px);
|
||||
}
|
||||
50% {
|
||||
transform: translate(-0.5px, 0.5px);
|
||||
}
|
||||
}
|
||||
70
sleepeesoftware.fr/css/loading_screen.css
Normal file
@ -0,0 +1,70 @@
|
||||
#loading-screen {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: rgb(0, 0, 0);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 9999;
|
||||
cursor: pointer;
|
||||
pointer-events: all; /* Ensure the user can click on the loading screen */
|
||||
z-index: 9999;
|
||||
mix-blend-mode: screen;
|
||||
box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.15);
|
||||
animation: flicker 3.0s infinite;
|
||||
}
|
||||
|
||||
#loading-screen::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('/assets/RpdC.gif') repeat;
|
||||
opacity: 0.05;
|
||||
mix-blend-mode: screen;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
#loading-screen::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: repeating-linear-gradient(
|
||||
0deg,
|
||||
rgba(255, 255, 255, 0.05) 0px,
|
||||
rgba(255, 255, 255, 0.05) 1px,
|
||||
transparent 1px,
|
||||
transparent 4px
|
||||
);
|
||||
animation: scanlines 0.1s linear infinite;
|
||||
z-index: -2;
|
||||
}
|
||||
|
||||
.loading-text {
|
||||
color: var(--primary-color);
|
||||
font-family: 'Orbitron', sans-serif;
|
||||
font-size: 2rem;
|
||||
text-align: center;
|
||||
text-shadow: 0 0 15px var(--primary-color), 0 0 30px var(--primary-color);
|
||||
animation: pulse 1.5s infinite;
|
||||
z-index: 10000;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@keyframes flicker {
|
||||
0%, 100% { opacity: 0.9; }
|
||||
50% { opacity: 1; }
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.75; }
|
||||
}
|
||||
15
sleepeesoftware.fr/css/palette.css
Normal file
@ -0,0 +1,15 @@
|
||||
:root {
|
||||
--primary-color: #00ffff;
|
||||
--secondary-color: #ff00ff;
|
||||
--background-color: #0d0d0d;
|
||||
--text-color: #f0f0f0;
|
||||
--overlay-background: rgba(0, 0, 0, 0.85);
|
||||
--button-background: #ff00ff;
|
||||
--button-hover-background: #00ffff;
|
||||
--scanline-color: rgba(255, 255, 255, 0.05);
|
||||
--glow-color: rgba(0, 255, 255, 0.3);
|
||||
--terminal-background: rgba(0, 0, 0, 0.9);
|
||||
--terminal-border: #ff00ff;
|
||||
--border-radius: 1.5%;
|
||||
}
|
||||
|
||||
141
sleepeesoftware.fr/css/ui.css
Normal file
@ -0,0 +1,141 @@
|
||||
.foreground-container {
|
||||
max-width: 960px;
|
||||
aspect-ratio: 4 / 3;
|
||||
margin: 0 auto;
|
||||
background-color: rgba(0, 0, 0, 0.85);
|
||||
box-shadow: 0 0 20px var(--secondary-color);
|
||||
padding: 2rem;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
border-radius: 2% / 1.5%;
|
||||
box-shadow: 0 0 40px var(--glow-color), inset 0 0 20px rgba(0, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 1rem 2rem;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 2px solid var(--secondary-color);
|
||||
}
|
||||
|
||||
header h1 {
|
||||
font-size: 2rem;
|
||||
color: var(--secondary-color);
|
||||
text-shadow: 0 0 5px var(--secondary-color);
|
||||
}
|
||||
|
||||
nav ul {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
text-decoration: none;
|
||||
color: var(--primary-color);
|
||||
padding: 0.5rem 1rem;
|
||||
border: 1px solid var(--primary-color);
|
||||
border-radius: 4px;
|
||||
text-shadow: 0 0 3px var(--primary-color);
|
||||
}
|
||||
|
||||
nav ul li a:hover {
|
||||
background: var(--primary-color);
|
||||
color: var(--background-color);
|
||||
}
|
||||
|
||||
.terminal {
|
||||
background: var(--terminal-background);
|
||||
border: 2px solid var(--terminal-border);
|
||||
padding: 2rem;
|
||||
width: 300px;
|
||||
margin: 2rem auto;
|
||||
box-shadow: 0 0 10px var(--terminal-border);
|
||||
}
|
||||
|
||||
.terminal input {
|
||||
background: #1a1a1a;
|
||||
border: 1px solid var(--primary-color);
|
||||
color: var(--primary-color);
|
||||
width: 100%;
|
||||
padding: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.terminal button {
|
||||
background: var(--secondary-color);
|
||||
border: none;
|
||||
color: var(--background-color);
|
||||
padding: 0.5rem 1rem;
|
||||
cursor: pointer;
|
||||
font-family: monospace;
|
||||
text-shadow: 0 0 3px var(--secondary-color);
|
||||
}
|
||||
|
||||
#music-player {
|
||||
text-align: center;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
#now-playing {
|
||||
font-family: monospace;
|
||||
color: var(--primary-color);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.controls {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.controls button {
|
||||
background: var(--background-color);
|
||||
border: 1px solid var(--primary-color);
|
||||
color: var(--primary-color);
|
||||
padding: 0.3rem 0.6rem;
|
||||
font-size: 1rem;
|
||||
cursor: pointer;
|
||||
font-family: 'Orbitron', sans-serif;
|
||||
text-shadow: 0 0 2px var(--primary-color);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.controls button:hover {
|
||||
background: var(--primary-color);
|
||||
color: var(--background-color);
|
||||
}
|
||||
|
||||
.music-button {
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
border: 1px solid var(--color-accent-cyan);
|
||||
padding: 0.3rem 0.5rem;
|
||||
margin: 0 0.2rem;
|
||||
font-size: 1.1rem;
|
||||
color: var(--color-accent-cyan);
|
||||
font-family: 'Orbitron', sans-serif;
|
||||
cursor: pointer;
|
||||
text-shadow: 0 0 2px var(--color-accent-cyan);
|
||||
box-shadow: 0 0 4px var(--color-accent-cyan),
|
||||
0 0 8px var(--color-accent-cyan);
|
||||
border-radius: 4px;
|
||||
transition: box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.music-button:hover {
|
||||
animation: btnflicker 0.5s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes btnflicker {
|
||||
0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% {
|
||||
opacity: 1;
|
||||
}
|
||||
20%, 22%, 24%, 55% {
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
<section id="container-aboutme">
|
||||
<h1>About Me</h1>
|
||||
<section id="Preambule">
|
||||
<h1>Preambule</h1>
|
||||
</section>
|
||||
<br>
|
||||
<section id="neuro">
|
||||
<h2>Desordre Neurologique</h2>
|
||||
<p>La section suivante sera sous forme de poeme afin d'essayer d'exterioriser mon ressentie</p>
|
||||
<h3>TSA</h3>
|
||||
<h3>TDA</h3>
|
||||
<h3>HI</h3>
|
||||
<h3>Depression</h3>
|
||||
</section>
|
||||
<br>
|
||||
<section id="shitpost">
|
||||
<h2>Shitpost</h2>
|
||||
<h3>Vision sur l'Informatique</h3>
|
||||
<h3>femboy</h3>
|
||||
<p>Volibear UwU Daddy</p>
|
||||
</section>
|
||||
</section>
|
||||
@ -1,15 +0,0 @@
|
||||
<section class="container">
|
||||
<!-- make each project as a tab kinda like browser tab, and switch page on project select, that should allow to dowload page by page -->
|
||||
|
||||
<section id="Music">
|
||||
|
||||
</section>
|
||||
|
||||
<section id="Writing">
|
||||
|
||||
</section>
|
||||
|
||||
<section id="Drawing">
|
||||
|
||||
</section>
|
||||
</section>
|
||||
@ -1 +0,0 @@
|
||||
<div class="content"></div>
|
||||
@ -1,145 +0,0 @@
|
||||
<section id="container-dev">
|
||||
<h1>Projects</h1>
|
||||
<section id="SterlingOs">
|
||||
<h1>Sterling OS</h1>
|
||||
<h3>Minimal Capability-Based Operating System</h3>
|
||||
<h2>Design Principles</h2>
|
||||
<ul>
|
||||
<li>No global filesystem, no path resolution</li>
|
||||
<li>No drivers in kernel, only sandboxed userspace driver processes</li>
|
||||
<li>No GPU acceleration, all rendering is deterministic software-based</li>
|
||||
<li>All resources accessed via capability tokens</li>
|
||||
<li>Processes are strictly sandboxed</li>
|
||||
<li>Programs operate on memory buffers, not raw file handles</li>
|
||||
<li>Desktop environment is a sandboxed coordinator, not a privileged process</li>
|
||||
</ul>
|
||||
|
||||
<h2>Authorization Token Model</h2>
|
||||
<p>Programs delegate access via opaque, kernel-managed tokens.</p>
|
||||
<pre><code>
|
||||
grant_token(target_pid, resource_id, flags) -> token_id
|
||||
accept_token(token_id) -> resource_handle
|
||||
revoke_token(token_id)
|
||||
</code></pre>
|
||||
|
||||
<h2>File Editing Flow</h2>
|
||||
<ol>
|
||||
<li>DE requests file via storage service</li>
|
||||
<li>Storage service provides a memory buffer</li>
|
||||
<li>Editor process receives buffer handle, edits</li>
|
||||
<li>Changes submitted back to storage via DE</li>
|
||||
</ol>
|
||||
|
||||
<h2>Driver Model</h2>
|
||||
<ul>
|
||||
<li>All drivers run as fully unprivileged user processes</li>
|
||||
<li>No driver registration or kernel mediation required</li>
|
||||
<li>Drivers communicate with hardware via explicit kernel-exposed capability channels</li>
|
||||
<li>No dynamic linking or privileged probing allowed</li>
|
||||
<li>Users can run or replace any driver without OS permission</li>
|
||||
</ul>
|
||||
|
||||
<h2>Graphics System</h2>
|
||||
<ul>
|
||||
<li>No GPU support, no shaders</li>
|
||||
<li>Software renderer processes draw via shared memory</li>
|
||||
<li>DE composites framebuffers deterministically</li>
|
||||
</ul>
|
||||
|
||||
<h2>Programming Language Requirements</h2>
|
||||
<ul>
|
||||
<li>Manual memory management</li>
|
||||
<li>Low-level data layout control</li>
|
||||
<li>Inline assembly support</li>
|
||||
<li>Pattern matching and compile-time macros</li>
|
||||
<li>No runtime, no global init, no dynamic linking</li>
|
||||
</ul>
|
||||
|
||||
<h2>Execution Model</h2>
|
||||
<ul>
|
||||
<li>Programs are spawned with exact buffer and token permissions</li>
|
||||
<li>No shared global state</li>
|
||||
<li>All IO is mediated via explicit capability-based services</li>
|
||||
<li>Everything is inspectable and reproducible</li>
|
||||
</ul>
|
||||
|
||||
<h2>Sandboxing Model</h2>
|
||||
<p>All processes are isolated via strict memory boundaries and capability-scoped access. No process can access global state, shared memory, or system calls without explicit capability grants.</p>
|
||||
|
||||
<h3>Memory Layout</h3>
|
||||
<pre class="diagram">
|
||||
+-----------------------+
|
||||
| Code (RX) |
|
||||
+-----------------------+
|
||||
| Data (RW) |
|
||||
+-----------------------+
|
||||
| Shared Buffers (RWX?) | ← only if explicitly mapped by kernel
|
||||
+-----------------------+
|
||||
| Stack (RW) |
|
||||
+-----------------------+
|
||||
</pre>
|
||||
|
||||
<h3>Process Launch</h3>
|
||||
<ul>
|
||||
<li>Preallocated memory map (no heap growth)</li>
|
||||
<li>Passed a syscall pointer table, token list, and init buffer</li>
|
||||
<li>Cannot request global system resources directly</li>
|
||||
</ul>
|
||||
|
||||
<h3>Capability Enforcement</h3>
|
||||
<p>All access is mediated via capability tokens, handed off securely:</p>
|
||||
<pre><code>
|
||||
token_id = request_token(pid, SERVICE_IO, READ_WRITE);
|
||||
handle = accept_token(token_id);
|
||||
</code></pre>
|
||||
<ul>
|
||||
<li>Token scope, rights, and duration enforced by kernel</li>
|
||||
<li>No access without explicit grant</li>
|
||||
<li>All capability use is auditable and revocable</li>
|
||||
</ul>
|
||||
|
||||
<h3>Filesystem Abstraction</h3>
|
||||
<ul>
|
||||
<li>No global file system</li>
|
||||
<li>Programs receive only memory buffers with scoped access</li>
|
||||
<li>Read/write must go through kernel-mapped tokens</li>
|
||||
</ul>
|
||||
|
||||
<h3>Driver Isolation</h3>
|
||||
<ul>
|
||||
<li>Drivers are userland processes only</li>
|
||||
<li>No direct port I/O or DMA access</li>
|
||||
<li>Hardware is accessed via kernel-exposed capability channels</li>
|
||||
</ul>
|
||||
|
||||
<h3>IPC</h3>
|
||||
<ul>
|
||||
<li>All inter-process communication is routed via the kernel</li>
|
||||
<li>Uses named ports and token-authenticated message queues</li>
|
||||
<li>No shared memory by default</li>
|
||||
</ul>
|
||||
|
||||
<h3>Future Additions</h3>
|
||||
<ul>
|
||||
<li>Deterministic scheduler</li>
|
||||
<li>Audit trail of all token activity</li>
|
||||
<li>Formal capability typing system</li>
|
||||
</ul>
|
||||
|
||||
<h2>Philosophy</h2>
|
||||
<p>Not a POSIX clone. It is a deterministic, capability-secure, user-controlled computing environment built to reject legacy complexity and embrace verifiable simplicity.</p>
|
||||
</section><br>
|
||||
|
||||
<section id="SterlingLang">
|
||||
|
||||
</section><br>
|
||||
|
||||
<section class="SleepeeLib">
|
||||
|
||||
</section><br>
|
||||
|
||||
<section class="Game Engine">
|
||||
|
||||
</section><br>
|
||||
|
||||
</section>
|
||||
@ -1,30 +0,0 @@
|
||||
<section class="container">
|
||||
<section id="Minecraft">
|
||||
<h2>Minecraft</h2>
|
||||
<h3>Mon Serveur</h3>
|
||||
<p>tu dois te login pour te faire whitelist</p>
|
||||
<h3>Modpack</h3>
|
||||
<h3>Creative World</h3>
|
||||
<!-- ajouter un caroussel avec chacun de mes mondes avec une popup descriptif et le lien -->
|
||||
</section><br>
|
||||
|
||||
<section id="League of Legends">
|
||||
<h2>League of Legends</h2>
|
||||
<i>je ne suis pas joueur pro.</i><br>
|
||||
<h3>Guide sur Yasuo</h3>
|
||||
<h4>Les Combos</h4>
|
||||
<h4>Build Actuel</h4>
|
||||
<h4>Runes Actuel</h4>
|
||||
<br>
|
||||
<a href="https://www.youtube.com/playlist?list=PL0RgKOdYjzg_P5F88zNTydaJAFAm6LGM2">Playlist sur Youtube</a>
|
||||
</section><br>
|
||||
|
||||
<section id="Dwarf Fortress">
|
||||
<h2>Dwarf Fortress</h2>
|
||||
<h3>Histoire de Mes Forteresse</h3>
|
||||
</section><br>
|
||||
|
||||
<section id="Other">
|
||||
|
||||
</section>
|
||||
</section>
|
||||
@ -1,137 +0,0 @@
|
||||
<!--
|
||||
This page will be a way for the user to learn c from 0 (en utilisant des travaux diriges avec parfois des codes reviews sur discord).
|
||||
-->
|
||||
|
||||
<h1>Introduction</h1>
|
||||
<p>Je ne vais pas passer par la base du language, car suffisement de ressource exist
|
||||
a la place, je vais passer par comment j'ai appris et ma methode.</br>
|
||||
Je vous laisse le choix dans votre editeur de texte et votre environment de travail.
|
||||
venez sur mon discord si vous avex des questions.</br>
|
||||
Je n'utilise pas d'ide mais vous avez le droit. de meme pour les IA.</br>
|
||||
Cependant attention a ne pas tomber dans le piege de la faciliter, L'apprentissage ce fait par les erreurs et le difficultes surmonter.
|
||||
</p>
|
||||
|
||||
<h1>Mise en Bouche</h1>
|
||||
<section id="First Taste">
|
||||
<p>Choisisser un editeur de text de votre choix !! (vim, neovim, emacs, vscode, elix etc)</p>
|
||||
<h2>Windows</h2>
|
||||
<h3>Installer WINLIB</h3>
|
||||
<h2>Unix</h2>
|
||||
<h3>Installer GCC GDB et GMAKE</h3>
|
||||
|
||||
<h2>Utilisation de GCC</h2>
|
||||
<h2>Utilisation de GDB</h2>
|
||||
<h2>Le Makefile</h2>
|
||||
<h2>Structure d'un projet</h2>
|
||||
</section>
|
||||
|
||||
<h2>PrintFormat</h2>
|
||||
<section>
|
||||
<h3></h3>
|
||||
<ul>
|
||||
<li>Argument Variadic</li>
|
||||
<li>Fonction en C</li>
|
||||
<li>Gestion des differents types</li>
|
||||
</ul>
|
||||
<h3></h3>
|
||||
<p>Votre but est de recreer un printf Simplifier</p>
|
||||
<ul>
|
||||
<li></li>
|
||||
</ul>
|
||||
<p>vous pouvez telecharger mon exemple afin d'emuler son comportement</p>
|
||||
</section>
|
||||
|
||||
<h2>MicroShell</h2>
|
||||
<section>
|
||||
<h3></h3>
|
||||
<ul>
|
||||
<li>Fonctionnement d'un executable</li>
|
||||
<li>Gestion d'un process</li>
|
||||
<li>Fonctionnement du std io et des files io</li>
|
||||
</ul>
|
||||
<h3></h3>
|
||||
<p>Votre but est de creer un micro shell permettant:</p>
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
<p>vous pouvez telecharger mon exemple afin d'emuler son comportement</p>
|
||||
<em>ATTENTION a ne pas casser votre system !!!</em>
|
||||
</section>
|
||||
|
||||
<h1>BRANCHE GAMEDEV</h1>
|
||||
<section>
|
||||
|
||||
<h2>2D platformer</h2>
|
||||
<section>
|
||||
<h3></h3>
|
||||
<ul>
|
||||
<li>Fonctionnement d'un executable</li>
|
||||
<li>Gestion d'un process</li>
|
||||
<li>Fonctionnement du std io et des files io</li>
|
||||
</ul>
|
||||
<h3></h3>
|
||||
<p>Votre but est de creer un micro shell permettant:</p>
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
<p>vous pouvez telecharger mon exemple afin d'emuler son comportement</p>
|
||||
<em>ATTENTION a ne pas casser votre system !!!</em>
|
||||
</section>
|
||||
|
||||
<h2>FPS</h2>
|
||||
<section>
|
||||
<h3></h3>
|
||||
<ul>
|
||||
<li>Fonctionnement d'un executable</li>
|
||||
<li>Gestion d'un process</li>
|
||||
<li>Fonctionnement du std io et des files io</li>
|
||||
</ul>
|
||||
<h3></h3>
|
||||
<p>Votre but est de creer un micro shell permettant:</p>
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
<p>vous pouvez telecharger mon exemple afin d'emuler son comportement</p>
|
||||
<em>ATTENTION a ne pas casser votre system !!!</em>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
<h1>BRANCHE OS DEV</h1>
|
||||
<section>
|
||||
|
||||
<h2>Environment et Emulateur</h2>
|
||||
<section>
|
||||
</section>
|
||||
|
||||
<h2>MEGASHELL</h2>
|
||||
<section>
|
||||
</section>
|
||||
|
||||
<h2>KERNEL</h2>
|
||||
<section>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
||||
<h1>Challenge Fun</h1>
|
||||
<h2>
|
||||
|
||||
<h2>CACHE ONLY OS</h2>
|
||||
<section>
|
||||
</section>
|
||||
|
||||
|
||||
</h2>
|
||||
@ -1,3 +0,0 @@
|
||||
<body>
|
||||
|
||||
<div class="content"></div>
|
||||
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\emilia\Downloads\favicon(1).zip
|
||||
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\emilia\Downloads\favicon(1).zip
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
3
sleepeesoftware.fr/icon/favicon.ico:Zone.Identifier
Normal file
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\emilia\Downloads\favicon(1).zip
|
||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
3
sleepeesoftware.fr/icon/favicon.svg:Zone.Identifier
Normal file
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\emilia\Downloads\favicon(1).zip
|
||||
3
sleepeesoftware.fr/icon/site.webmanifest:Zone.Identifier
Normal file
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\emilia\Downloads\favicon(1).zip
|
||||
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\emilia\Downloads\favicon(1).zip
|
||||
@ -0,0 +1,3 @@
|
||||
[ZoneTransfer]
|
||||
ZoneId=3
|
||||
ReferrerUrl=C:\Users\emilia\Downloads\favicon(1).zip
|
||||
@ -6,44 +6,86 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Sleepee Software</title>
|
||||
<!-- Google Font -->
|
||||
<link href="assets/IosevkaSS15-Regular.ttf" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap" rel="stylesheet">
|
||||
<!-- style --->
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<link rel="stylesheet" href="css/palette.css">
|
||||
<link rel="stylesheet" href="css/base.css">
|
||||
<link rel="stylesheet" href="css/background.css">
|
||||
<link rel="stylesheet" href="css/effects.css">
|
||||
<link rel="stylesheet" href="css/loading_screen.css">
|
||||
<link rel="stylesheet" href="css/ui.css">
|
||||
<!-- icon -->
|
||||
<!--<link rel="icon" type="image/png" href="/assets/favicon-96x96.png" sizes="96x96" />-->
|
||||
<link rel="icon" type="image/svg+xml" href="/assets/favicon.svg" />
|
||||
<link rel="shortcut icon" href="/assets/favicon.ico" />
|
||||
<link rel="manifest" href="/assets/site.webmanifest" />
|
||||
<link rel="icon" type="image/png" href="/icon/favicon-96x96.png" sizes="96x96" />
|
||||
<link rel="icon" type="image/svg+xml" href="/icon/favicon.svg" />
|
||||
<link rel="shortcut icon" href="/icon/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/icon/apple-touch-icon.png" />
|
||||
<link rel="manifest" href="/icon/site.webmanifest" />
|
||||
</head>
|
||||
<body>
|
||||
<!--<div id="top"></div>
|
||||
<div id="loading-screen">
|
||||
<div class="loading-text">PRESS TO START</div>
|
||||
</div>
|
||||
<div class="grid-bg"></div>
|
||||
<div class="crt-overlay"></div>
|
||||
|
||||
<div class="content">-->
|
||||
<header>
|
||||
<nav id="top-nav"><ul>
|
||||
<img src="assets/cooltext484352697795184.png" style="max-width: 30%; height: auto;">
|
||||
<li><a href="#" id="nav-landing">Whoami</a></li>
|
||||
<li><a href="#" id="nav-blog">Blog</a></li>
|
||||
<li><a href="#" id="nav-blog">Projets</a>
|
||||
<li><a href="#" id="nav-forum">Chat</a></li>
|
||||
<li><a href="#" id="nav-learn">Learn</a></li>
|
||||
<li><a href="#" id="nav-shop">Shop</a></li>
|
||||
<li><a href="#" id="nav-login">Login or Account</a></li>
|
||||
</ul></nav>
|
||||
</header>
|
||||
<aside id="aside-container">
|
||||
</aside>
|
||||
<main id="content-container">
|
||||
</main>
|
||||
<footer>
|
||||
<p>Copyright @ 2025 <a href="mailto:dev@sleepeesoftware.fr">Sleepee Software</a><br>Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.<br>
|
||||
Verbatim copying and redistribution of any of the photos in the photos subdirectory is permitted under the <a href="https://opensource.org/license/mit">MIT License</a></p>
|
||||
</footer>
|
||||
<!--<script src="js/index.js"></script>-->
|
||||
<div id="loading-screen">
|
||||
<div class="loading-text">PRESS TO START</div>
|
||||
</div>
|
||||
<div class="grid-bg"></div>
|
||||
<div class="crt-overlay"></div>
|
||||
<div class="foreground-container hidden">
|
||||
<header>
|
||||
<h1>Sleepee Software</h1>
|
||||
<nav><ul>
|
||||
<li><a href="#" id="nav-landing">Home</a></li>
|
||||
<li><a href="#" id="nav-login">Login</a></li>
|
||||
<li><a href="#" id="nav-blog">Blog</a></li>
|
||||
<li><a href="#" id="nav-chat">Chat</a></li>
|
||||
<li><a href="#" id="nav-news">News</a></li>
|
||||
<!--<li><a href="/gitea-repos/" id="nav-git">Git</a></li>-->
|
||||
</ul></nav>
|
||||
</header>
|
||||
<div id="music-player" class="terminal">
|
||||
<div id="now-playing"></div>
|
||||
<div class="controls">
|
||||
<button id="prev-btn" class="music-button">⏮</button>
|
||||
<button id="play-pause-btn" class="music-button">⏯</button>
|
||||
<button id="next-btn" class="music-button">⏭</button>
|
||||
</div>
|
||||
</div>
|
||||
<main id="main-content">
|
||||
<section id="landing-section">
|
||||
<h2>Welcome to Sleepee Software</h2>
|
||||
<p>Experience my games and software in neon-lit glory !</p>
|
||||
<h2>My Public Repositories</h2>
|
||||
<ul id="repo-list">
|
||||
<li>Loading...</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="login-section" class="hidden">
|
||||
<div class="terminal">
|
||||
<h2>Login</h2>
|
||||
<form id="login-form">
|
||||
<input type="text" placeholder="Username" id="username" required>
|
||||
<input type="password" placeholder="Password" id="password" required>
|
||||
<button type="submit">Enter</button>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
<section id="blog-section" class="hidden">
|
||||
<h2>Studio Blog</h2>
|
||||
<div id="posts">
|
||||
<p>Coming soon...</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="chat-section" class="hidden">
|
||||
<h2>Community Chat</h2>
|
||||
<div id="chat-window" class="terminal">
|
||||
<p><em>IRC interface coming soon...</em></p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="news-section" class="hidden">
|
||||
<h2>Newsfeed</h2>
|
||||
<div id="news-ticker">
|
||||
<p><em>Latest studio news will appear here...</em></p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
<script src="js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -8,41 +8,107 @@ document.querySelectorAll('nav ul li a').forEach(link => {
|
||||
});
|
||||
});
|
||||
|
||||
/*
|
||||
onload
|
||||
*/
|
||||
document.getElementById('login-form')?.addEventListener('submit', e => {
|
||||
e.preventDefault();
|
||||
const username = document.getElementById('username').value;
|
||||
alert(`Logging in as ${username}...`);
|
||||
// TODO: call backend API for authentication
|
||||
});
|
||||
|
||||
fetch("/gitea-repos/")
|
||||
.then(res => res.json())
|
||||
.then(repos => {
|
||||
const list = document.getElementById("repo-list");
|
||||
list.innerHTML = ""; // Clear "Loading..."
|
||||
repos.forEach(repo => {
|
||||
const item = document.createElement("li");
|
||||
item.innerHTML = `
|
||||
<strong><a href="${repo.html_url}" target="_blank">${repo.name}</a></strong>
|
||||
<p>${repo.description || "No description"}</p>`;
|
||||
list.appendChild(item);
|
||||
});
|
||||
})
|
||||
.catch(err => console.error("Error fetching repos:", err));
|
||||
|
||||
const playlist = [
|
||||
{
|
||||
title: 'Project_2 fatmeat',
|
||||
src: 'assets/Project_2.ogg'
|
||||
}
|
||||
];
|
||||
|
||||
let currentTrack = 0;
|
||||
const audio = new Audio();
|
||||
audio.loop = false;
|
||||
audio.volume = 0.04;
|
||||
|
||||
const nowPlaying = document.getElementById('now-playing');
|
||||
const playPauseBtn = document.getElementById('play-pause-btn');
|
||||
const nextBtn = document.getElementById('next-btn');
|
||||
const prevBtn = document.getElementById('prev-btn');
|
||||
|
||||
function loadTrack(index) {
|
||||
currentTrack = index;
|
||||
audio.src = playlist[currentTrack].src;
|
||||
nowPlaying.textContent = `♫ Now Playing: ${playlist[currentTrack].title}`;
|
||||
audio.play();
|
||||
playPauseBtn.textContent = '⏸';
|
||||
}
|
||||
|
||||
playPauseBtn.addEventListener('click', () => {
|
||||
if (audio.paused) {
|
||||
audio.play();
|
||||
playPauseBtn.textContent = '⏸';
|
||||
} else {
|
||||
audio.pause();
|
||||
playPauseBtn.textContent = '▶';
|
||||
}
|
||||
});
|
||||
|
||||
nextBtn.addEventListener('click', () => {
|
||||
loadTrack((currentTrack + 1) % playlist.length);
|
||||
});
|
||||
|
||||
prevBtn.addEventListener('click', () => {
|
||||
loadTrack((currentTrack - 1 + playlist.length) % playlist.length);
|
||||
});
|
||||
|
||||
audio.addEventListener('ended', () => {
|
||||
loadTrack((currentTrack + 1) % playlist.length);
|
||||
});
|
||||
|
||||
// From previous step: start music only after "Press to Start"
|
||||
document.getElementById('loading-screen')?.addEventListener('click', () => {
|
||||
loadTrack(0);
|
||||
});
|
||||
|
||||
document.getElementById('now-playing').textContent = '🎵 Now Playing: Song Title';
|
||||
|
||||
window.addEventListener('DOMContentLoaded', () => {
|
||||
const loadingScreen = document.getElementById('loading-screen');
|
||||
const music = new Audio(); // your audio logic might be handled elsewhere now
|
||||
|
||||
if (loadingScreen) {
|
||||
loadingScreen.addEventListener('click', () => {
|
||||
loadingScreen.style.display = 'none'; // hides the full screen
|
||||
loadTrack(0); // start the music playlist
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
const loadingScreen = document.getElementById('loading-screen');
|
||||
const loadingText = document.querySelector('.loading-text');
|
||||
|
||||
loadingScreen.addEventListener('click', function() {
|
||||
loadingScreen.style.display = 'none';
|
||||
const container = document.querySelector(".foreground-container");
|
||||
container.classList.remove("hidden");
|
||||
container.classList.add("fade-in");
|
||||
const container2 = document.querySelector(".navbar-container");
|
||||
container2.classList.remove("hidden");
|
||||
container2.classList.add("fade-in");
|
||||
document.querySelector('.foreground-container').style.display = 'block';
|
||||
});
|
||||
});
|
||||
|
||||
function filterContent() {
|
||||
const query = document.getElementById('searchInput').value.toLowerCase();
|
||||
document.querySelectorAll('.section').forEach(section => {
|
||||
const text = section.innerText.toLowerCase();
|
||||
section.style.display = text.includes(query) ? 'block' : 'none';
|
||||
});
|
||||
}
|
||||
|
||||
function downloadOfflineVersion() {
|
||||
const blob = new Blob([document.documentElement.outerHTML], { type: 'text/html' });
|
||||
const a = document.createElement('a');
|
||||
a.href = URL.createObjectURL(blob);
|
||||
a.download = 'SystemsLangDocumentation.html';
|
||||
a.click();
|
||||
}
|
||||
|
||||
function toggleSearch() {
|
||||
const dropdown = document.getElementById('searchDropdown');
|
||||
dropdown.style.display = dropdown.style.display === 'block' ? 'none' : 'block';
|
||||
}
|
||||
document.getElementById("loading-screen").addEventListener("click", () => {
|
||||
document.getElementById("loading-screen").style.display = "none";
|
||||
const container = document.querySelector(".foreground-container");
|
||||
container.classList.remove("hidden");
|
||||
container.classList.add("fade-in");
|
||||
});
|
||||
|
||||
@ -1,87 +0,0 @@
|
||||
:root {
|
||||
--primary-color: #00ffff;
|
||||
--secondary-color: #ff00ff;
|
||||
--background-color: #0d0d0d;
|
||||
--text-color: #f0f0f0;
|
||||
--overlay-background: rgba(0, 0, 0, 0.85);
|
||||
--button-background: #ff00ff;
|
||||
--button-hover-background: #00ffff;
|
||||
--scanline-color: rgba(255, 255, 255, 0.05);
|
||||
--glow-color: rgba(0, 255, 255, 0.3);
|
||||
--terminal-background: rgba(0, 0, 0, 0.9);
|
||||
--terminal-border: #ff00ff;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 3fr;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
header, footer {
|
||||
border-radius: 5px;
|
||||
padding: 10px;
|
||||
background-color: rebeccapurple;
|
||||
color: whitesmoke;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
aside {
|
||||
border-right: 1px solid rebeccapurple;
|
||||
}
|
||||
|
||||
header {
|
||||
grid-column: 1 / 3;
|
||||
grid-row: 1;
|
||||
}
|
||||
|
||||
main {
|
||||
grid-column: 2;
|
||||
grid-row: 2;
|
||||
}
|
||||
|
||||
aside {
|
||||
grid-column: 1;
|
||||
grid-row: 2;
|
||||
}
|
||||
|
||||
footer {
|
||||
grid-column: 1 / 3;
|
||||
grid-row: 3;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 1rem;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
text-decoration: none;
|
||||
color: var(--primary-color);
|
||||
padding: 0.5rem 1rem;
|
||||
border: 1px solid var(--primary-color);
|
||||
border-radius: 4px;
|
||||
text-shadow: 0 0 3px var(--primary-color);
|
||||
}
|
||||
|
||||
nav ul li a:hover {
|
||||
background: var(--primary-color);
|
||||
color: var(--background-color);
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration: none;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
color: var(--secondary-color);
|
||||
|
||||
}
|
||||
|
||||
footer p {
|
||||
text-align: center;
|
||||
}
|
||||
@ -1,290 +0,0 @@
|
||||
:root {
|
||||
--primary-color: #00ffff;
|
||||
--secondary-color: #ff00ff;
|
||||
--background-color: #0d0d0d;
|
||||
--text-color: #f0f0f0;
|
||||
--overlay-background: rgba(0, 0, 0, 0.85);
|
||||
--button-background: #ff00ff;
|
||||
--button-hover-background: #00ffff;
|
||||
--scanline-color: rgba(255, 255, 255, 0.05);
|
||||
--glow-color: rgba(0, 255, 255, 0.3);
|
||||
--terminal-background: rgba(0, 0, 0, 0.9);
|
||||
--terminal-border: #ff00ff;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
@keyframes scanlines {
|
||||
0% { transform: translateY(0); }
|
||||
50% { transform: translateY(-2px); }
|
||||
100% { transform: translateY(0); }
|
||||
}
|
||||
|
||||
@keyframes vhs-static {
|
||||
0% { transform: translate(0, 0); }
|
||||
25% { transform: translate(-1px, 1px); }
|
||||
50% { transform: translate(1px, -0.5px); }
|
||||
75% { transform: translate(-0.5px, 0.5px); }
|
||||
100% { transform: translate(0.5px, -1px); }
|
||||
}
|
||||
|
||||
@keyframes flicker {
|
||||
0%, 100% { opacity: 0.8; }
|
||||
50% { opacity: 1; }
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0.75; }
|
||||
}
|
||||
|
||||
|
||||
@keyframes rgb-split {
|
||||
0%, 100% {
|
||||
transform: translate(0px, 0px);
|
||||
}
|
||||
50% {
|
||||
transform: translate(-0.5px, 0.5px);
|
||||
}
|
||||
}
|
||||
|
||||
.fade-in {
|
||||
animation: fadeIn 0.5s ease-out forwards;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.crt-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
mix-blend-mode: screen;
|
||||
animation: flicker 1.5s infinite;
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: inset 0 0 40px var(--glow-color);
|
||||
}
|
||||
|
||||
.grid-bg {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: repeating-linear-gradient(
|
||||
to right,
|
||||
rgba(0, 255, 255, 0.1) 0px,
|
||||
rgba(0, 255, 255, 0.1) 1px,
|
||||
transparent 1px,
|
||||
transparent 40px
|
||||
), repeating-linear-gradient(
|
||||
to bottom,
|
||||
rgba(0, 255, 255, 0.1) 0px,
|
||||
rgba(0, 255, 255, 0.1) 1px,
|
||||
transparent 1px,
|
||||
transparent 40px
|
||||
);
|
||||
background-color: var(--background-color);
|
||||
z-index: -4;
|
||||
}
|
||||
|
||||
#top-nav {
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
padding: 2rem;
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 1rem 2rem;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
border-bottom: 2px solid var(--secondary-color);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#left-nav {
|
||||
position: fixed;
|
||||
top: 96px;
|
||||
left: 0;
|
||||
width: 200px;
|
||||
height: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
padding: 1rem;
|
||||
background: rgba(0, 0, 0, 0.85);
|
||||
border-right: 2px solid var(--primary-color);
|
||||
z-index: 5;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#right-nav {
|
||||
position: fixed;
|
||||
top: 96px;
|
||||
right: 0;
|
||||
width: 200px;
|
||||
height: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-end;
|
||||
padding: 1rem;
|
||||
background: rgba(0, 0, 0, 0.85);
|
||||
border-left: 2px solid var(--primary-color);
|
||||
z-index: 5;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 1rem;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
nav ul li a {
|
||||
text-decoration: none;
|
||||
color: var(--primary-color);
|
||||
padding: 0.5rem 1rem;
|
||||
border: 1px solid var(--primary-color);
|
||||
border-radius: 4px;
|
||||
text-shadow: 0 0 3px var(--primary-color);
|
||||
}
|
||||
|
||||
nav ul li a:hover {
|
||||
background: var(--primary-color);
|
||||
color: var(--background-color);
|
||||
}
|
||||
|
||||
#loading-screen {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: rgb(0, 0, 0);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 9999;
|
||||
cursor: pointer;
|
||||
pointer-events: all; /* Ensure the user can click on the loading screen */
|
||||
z-index: 9999;
|
||||
mix-blend-mode: screen;
|
||||
box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.15);
|
||||
animation: flicker 3.0s infinite;
|
||||
}
|
||||
|
||||
#loading-screen::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('/assets/RpdC.gif') repeat;
|
||||
opacity: 0.05;
|
||||
mix-blend-mode: screen;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
#loading-screen::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: repeating-linear-gradient(
|
||||
0deg,
|
||||
rgba(255, 255, 255, 0.05) 0px,
|
||||
rgba(255, 255, 255, 0.05) 1px,
|
||||
transparent 1px,
|
||||
transparent 4px
|
||||
);
|
||||
animation: scanlines 0.1s linear infinite;
|
||||
z-index: -2;
|
||||
}
|
||||
|
||||
.loading-text {
|
||||
color: var(--primary-color);
|
||||
font-family: 'Orbitron', sans-serif;
|
||||
font-size: 2rem;
|
||||
text-align: center;
|
||||
text-shadow: 0 0 15px var(--primary-color), 0 0 30px var(--primary-color);
|
||||
animation: pulse 1.5s infinite;
|
||||
z-index: 10000;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Orbitron', sans-serif;
|
||||
color: var(--text-color);
|
||||
background: var(--background-color);
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
body::before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0; left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 2;
|
||||
pointer-events: none;
|
||||
background: url('/assets/RpdC.gif') repeat;
|
||||
opacity: 0.05;
|
||||
mix-blend-mode: screen;
|
||||
}
|
||||
|
||||
body::after {
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0; left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
background: repeating-linear-gradient(
|
||||
0deg,
|
||||
--scanline-color 0px,
|
||||
--scanline-color 1px,
|
||||
transparent 1px,
|
||||
transparent 4px
|
||||
);
|
||||
animation: scanlines 0.1s linear infinite;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
max-width: 960px;
|
||||
min-height: 720px;
|
||||
margin: 0 auto;
|
||||
padding: 32px;
|
||||
background-color: rgba(0, 0, 0, 0.85);
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration: none;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
color: var(--secondary-color);
|
||||
|
||||
}
|
||||
|
||||
footer p {
|
||||
text-align: center;
|
||||
}
|
||||