-
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlegal.html
More file actions
289 lines (260 loc) · 17 KB
/
legal.html
File metadata and controls
289 lines (260 loc) · 17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>4SP - LEGAL</title>
<link rel="stylesheet" href="css/style.css">
<script src="https://www.gstatic.com/firebasejs/9.6.10/firebase-app-compat.js"></script>
<script src="https://www.gstatic.com/firebasejs/9.6.10/firebase-auth-compat.js"></script>
<script src="/firebase-config.js"></script>
<script src="/panic-key.js"></script>
<script src="/url-changer.js"></script>
<style>
/* This inline style ensures the links are hidden by default before JS loads */
.logged-in-link, .logged-out-link {
display: none;
}
/* Basic styling for the legal page content */
.legal-content {
padding: 40px 0;
line-height: 1.8;
font-family: 'PrimaryFont', sans-serif;
}
.legal-content h1, .legal-content h2, .legal-content h3 {
font-family: 'PrimaryFont', sans-serif;
}
.legal-content h2 {
font-size: 2.2em;
margin-bottom: 25px;
border-bottom: 2px solid #ddd;
padding-bottom: 15px;
}
.legal-content h3 {
font-size: 1.6em;
margin-top: 35px;
margin-bottom: 20px;
color: #333;
}
.legal-content p, .legal-content li {
margin-bottom: 15px;
font-size: 1.1em;
color: #555;
}
.legal-content ul {
list-style-type: square;
padding-left: 40px;
}
.legal-content ul ul {
list-style-type: disc;
margin-top: 10px;
}
.legal-content a {
color: #007bff;
text-decoration: underline;
}
.legal-content strong {
color: #000;
}
.secondary-font {
font-family: Arial, Helvetica, sans-serif;
}
.disclaimer-box {
background-color: #fff8e1;
border-left: 5px solid #ffc107;
padding: 20px;
margin: 30px 0;
}
.disclaimer-box h4 {
margin-top: 0;
color: #c79100;
font-size: 1.4em;
}
.disclaimer-box p {
margin-bottom: 0;
}
</style>
</head>
<body>
<section class="hero-section dark-bg">
<div class="container">
<h1>4SP - LEGAL</h1>
</div>
</section>
<header class="main-header light-bg">
<div class="container">
<div class="logo">
<img src="images/logo-dark.png" alt="4SP Logo">
</div>
<nav class="main-nav">
<ul id="mainNavLinks">
<li class="dropdown" id="more-dropdown">
<a class="dropbtn">MORE</a>
</li>
<li class="logged-in-link"><a href="logged-in/dashboard.html">DASHBOARD</a></li>
</ul>
</nav>
<div class="auth-buttons" id="authButtons">
</div>
</div>
</header>
<section class="news-bar light-bg">
<div class="container">
<p>LEGAL: Our comprehensive Terms of Service and Privacy Policy for the 4SP V4 Platform.</p>
</div>
</section>
<main class="legal-content light-bg">
<div class="container">
<h2 id="terms">Terms of Service</h2>
<p><strong>Effective Date:</strong> September 14, 2025</p>
<h3>1. Your Agreement to these Terms</h3>
<p>
Welcome to 4SP V4 (referred to as "the Service" or "the project"). This is a personal, non-commercial project created by an individual student for entertainment purposes only. No company or formal organization is associated with this website, and it is offered without any financial gain. By accessing this website, creating an account, or using any of its features, you are confirming that you have read, understood, and agree to be legally bound by these Terms of Service. If you do not agree with any part of these terms, you are prohibited from using the Service.
</p>
<h3>2. Detailed Description of Service</h3>
<p>
4SP V4 is a multifaceted public platform designed strictly for <strong>entertainment purposes</strong>. By using the Service, you agree to access and utilize its features solely for personal entertainment. The Service provides users with access to a variety of tools and features, including but not limited to:
</p>
<ul>
<li><strong>Games and Emulation:</strong> A selection of web-based games and emulators, including titles such as classic <strong>DOOM</strong>, <strong>Eaglercraft</strong>, <strong>GN-Math Games</strong>, <strong>StrongdogXP</strong>, and emulated <strong>Game Boy</strong> games. You acknowledge that some of these games contain violence, including the use of firearms, and are intended for mature audiences. These games are provided as-is, and 4SP does not claim ownership or copyright over them.</li>
<li><strong>Soundboard:</strong> An interactive soundboard allowing users to play various sound clips. You acknowledge and agree that this feature may contain <strong>sounds of an explicit or mature nature</strong>.</li>
<li><strong>Firebase Messaging App:</strong> A downloadable messaging application (HTML file) that runs locally on your computer. You are solely responsible for downloading and running this file. While it connects to the 4SP Firebase backend and is subject to our Privacy Policy, the Service is not liable for any issues arising from its use on your personal device.</li>
<li><strong>Productivity and Personalization Apps:</strong> A suite of tools to enhance your experience:
<ul>
<li><strong>Notes:</strong> A versatile note-taking application that offers local saving. You can also save notes in an encrypted format using the CryptoJS library (see Privacy Policy for details).</li>
<li><strong>Countdowns & Playlists:</strong> Tools that exclusively use local saving on your device. Your data is not stored on our servers.</li>
</ul>
</li>
<li><strong>Requests Page:</strong> A feature allowing users to submit requests for new sounds or features. All submissions are subject to the content standards outlined in the User Conduct section.</li>
</ul>
<p>All tools and information on this website are provided on a strictly "as-is" and "as-available" basis, without any warranties of any kind.</p>
<h3>3. User Conduct and Absolute Responsibility</h3>
<p>You are solely and entirely responsible for your own actions and conduct while using the Service. You acknowledge and agree that you bear all risks associated with the use of any feature on this platform.</p>
<h4>A. Use of Soundboard and Explicit Sounds</h4>
<p>
You understand that the soundboard may contain audio clips that are explicit, loud, or otherwise disruptive. You are solely responsible for the context in which you use these sounds. Using the soundboard to harass, annoy, or disrupt others, especially in environments like schools or workplaces, is a misuse of the Service. Any consequences arising from such misuse are your responsibility alone.
</p>
<h4>B. User Submissions and Content Standards</h4>
<p>
You agree that you will not submit, post, or transmit any content, requests, or communications that contain <strong>explicit, obscene, offensive, or illegal wording or material</strong>. This includes the public requests page and any other publicly available user-generated text. An explicit exception is made for the <strong>source Uniform Resource Locator (URL)</strong> you provide when requesting a new sound; the URL may link to explicit material, but all accompanying text must remain clean. Violation of this policy may result in the termination of your account.
</p>
<p>
Submitting requests on the <strong>Requests page</strong> constitutes a direct violation if your request contains explicit wording or if your publicly displayed username contains explicit wording. At an administrator's sole discretion, your account may be <strong>temporarily banned</strong> for one (1), three (3), or seven (7) days. Repeat offenders may be banned <strong>indefinitely</strong>.
</p>
<p>
<strong>Exception:</strong> You will not be penalized for having an explicit username if you submit requests <strong>anonymously</strong>.
</p>
<h3>4. Voluntary Donations</h3>
<p>
4SP is a personal project funded entirely by the creator. To help cover operational costs such as hosting and domain registration, the project accepts voluntary donations through third-party services. All donations are greatly appreciated but are considered final and are <strong>non-refundable</strong>. Donating does not entitle you to any ownership, special features, or influence over the project.
</p>
<div class="disclaimer-box">
<h4>5. Supreme Limitation of Liability and Comprehensive Disclaimer</h4>
<p>
<strong>This is a personal, non-commercial student project provided for entertainment only. By creating an account and using this Service, you irrevocably and explicitly understand and agree that I, the sole creator and administrator of 4SP V4, cannot and will not be held liable, responsible, or accountable for any and all repercussions, consequences, damages, or punishments you may face as a result of using this website or any of its features.</strong>
</p>
<p>
This includes, but is absolutely not limited to: academic or workplace disciplinary action; civil or criminal legal trouble; or any personal, social, financial, or emotional distress or harm. By agreeing to these terms, you formally and completely absolve me of any and all responsibility.
</p>
</div>
<h2 id="privacy" style="margin-top: 50px;">Privacy Policy</h2>
<p><strong>Effective Date:</strong> September 14, 2025</p>
<h3>1. Your Consent to Our Data Practices</h3>
<p>
Your privacy is important, but transparency is paramount. By using 4SP V4, you consent to the data collection and use practices described in this policy. When you create an account, you willingly provide the information necessary for the Service to function.
</p>
<h3>2. Information We Collect and Store</h3>
<p>
The Service utilizes <strong>Google Firebase</strong> for its core infrastructure. The data collected is strictly limited to what is necessary for account management and functionality:
</p>
<ul>
<li><strong>Account & Authentication Information:</strong> Your username, email address, account creation date, and authentication method (e.g., Google, GitHub).</li>
<li><strong>User-Generated Content:</strong> The requests you submit on the Requests page.</li>
</ul>
<h3>3. How and Why Your Information Is Used</h3>
<p>The information collected is used to create and secure your account, operate and maintain the Service, and prevent abuse. <strong>I do not, and will not, sell your personal information to third-party marketers.</strong></p>
<h3>4. Data Storage and User Responsibility</h3>
<p>
User-generated content (submissions to the Requests page) is stored in the Service's Cloud Firestore database. It is important to distinguish between cloud data and data stored <strong>locally</strong> on your device. Features like <strong>Countdowns</strong> and <strong>Playlists</strong> store data on your computer's browser storage and this data is not transmitted to our servers.
</p>
<p>
The <strong>Notes app</strong> also saves locally. Additionally, it offers an option to save notes in an <strong>encrypted format</strong> using the industry-standard CryptoJS library. While this feature adds a layer of security, you are solely responsible for managing your encryption password. If you lose your password, your encrypted data cannot be recovered. No encryption is guaranteed to be unbreakable, and the Service provides this feature as-is, without any warranty of security.
</p>
<h3>5. Changes to These Policies</h3>
<p>
I reserve the right to update these Terms of Service and Privacy Policy at any time. Your continued use of the Service after such changes constitutes your acceptance of the new terms.
</p>
<h2 id="copyright" style="margin-top: 50px;">Copyright and Takedown Policy</h2>
<p><strong>Effective Date:</strong> September 14, 2025</p>
<h3>1. Reporting Copyright Infringement</h3>
<p>
This project respects the intellectual property rights of others. If you are a copyright owner and believe that any content hosted on this Service infringes upon your copyrights, you may submit a DMCA notification.
</p>
<h3>2. How to Send a Takedown Notice</h3>
<p>
Please send your official takedown notice with all required information to: <strong><a href="mailto:4simpleproblems+legal@gmail.com" class="secondary-font">4simpleproblems+legal@gmail.com</a></strong>
</p>
<p>
To ensure your request is processed promptly, please include the following: a signature, identification of the copyrighted work, identification of the infringing material, your contact information, a statement of good faith belief, and a statement of accuracy under penalty of perjury.
</p>
</div>
</main>
<footer>
<div class="container">
<p>© 2025 4SP. All rights reserved.</p>
</div>
</footer>
<div class="dropdown-content" id="more-menu-content">
<div class="dropdown-header">MORE</div>
<hr class="dropdown-divider">
<a href="the-story.html">THE STORY</a>
<a href="index.html">HOME</a>
<a href="https://buymeacoffee.com/4simpleproblems" target="_blank" rel="noopener noreferrer">DONATE</a>
</div>
<script>
// Firebase Authentication Logic
const authButtonsDiv = document.getElementById('authButtons');
const loggedInLinks = document.querySelectorAll('.logged-in-link');
const loggedOutLinks = document.querySelectorAll('.logged-out-link');
function logout() {
firebase.auth().signOut().catch(error => console.error('Error logging out:', error));
}
firebase.auth().onAuthStateChanged(user => {
authButtonsDiv.innerHTML = '';
if (user) {
authButtonsDiv.innerHTML = `<a href="#" class="btn btn-logout" onclick="logout()">LOGOUT</a>`;
loggedInLinks.forEach(link => link.style.display = 'inline-block');
loggedOutLinks.forEach(link => link.style.display = 'none');
} else {
authButtonsDiv.innerHTML = `<a href="login.html" class="btn btn-login">LOGIN</a> <a href="signup.html" class="btn btn-signup">SIGN UP</a>`;
loggedInLinks.forEach(link => link.style.display = 'none');
loggedOutLinks.forEach(link => link.style.display = 'inline-block');
}
});
// Dropdown Menu Logic
document.addEventListener('DOMContentLoaded', () => {
const dropdownTrigger = document.getElementById('more-dropdown');
const dropdownContent = document.getElementById('more-menu-content');
if (dropdownTrigger && dropdownContent) {
let hideTimeout;
const showMenu = () => {
clearTimeout(hideTimeout);
const rect = dropdownTrigger.getBoundingClientRect();
dropdownContent.style.top = `${window.scrollY + rect.bottom + 10}px`;
dropdownContent.style.left = `${rect.left}px`;
dropdownContent.classList.add('show');
};
const hideMenu = () => {
hideTimeout = setTimeout(() => {
dropdownContent.classList.remove('show');
}, 200);
};
dropdownTrigger.addEventListener('mouseenter', showMenu);
dropdownTrigger.addEventListener('mouseleave', hideMenu);
dropdownContent.addEventListener('mouseenter', () => clearTimeout(hideTimeout));
dropdownContent.addEventListener('mouseleave', hideMenu);
}
});
</script>
</body>
</html>