├── .gitattributes
├── .gitignore
├── composer.json
├── composer.lock
├── config_blank.php
├── index.php
├── templates
├── index.twig
└── main.twig
├── twig.ext.php
└── web
├── index.php
└── static
├── css
├── _mq.scss
├── _normalize.scss
├── _roboto.scss
├── style.css
├── style.css.map
└── style.scss
├── fonts
├── roboto-v18-latin-100.eot
├── roboto-v18-latin-100.svg
├── roboto-v18-latin-100.ttf
├── roboto-v18-latin-100.woff
├── roboto-v18-latin-100.woff2
├── roboto-v18-latin-regular.eot
├── roboto-v18-latin-regular.svg
├── roboto-v18-latin-regular.ttf
├── roboto-v18-latin-regular.woff
└── roboto-v18-latin-regular.woff2
└── img
├── favicon-16.png
├── favicon-32.png
├── favicon-96.png
├── ggbg.png
├── god.svg
├── rg.svg
├── rgbg.png
├── sg.svg
└── sgbg.png
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto eol=lf
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /twig_cache/
2 | composer.phar
3 | /vendor/
4 | /config.php
5 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "require": {
3 | "slim/slim": "3.0",
4 | "slim/twig-view": "^2.3"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/composer.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_readme": [
3 | "This file locks the dependencies of your project to a known state",
4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 | "This file is @generated automatically"
6 | ],
7 | "content-hash": "e30d3564bc8c531d5408a34d9d5ca9e7",
8 | "packages": [
9 | {
10 | "name": "container-interop/container-interop",
11 | "version": "1.2.0",
12 | "source": {
13 | "type": "git",
14 | "url": "https://github.com/container-interop/container-interop.git",
15 | "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
16 | },
17 | "dist": {
18 | "type": "zip",
19 | "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
20 | "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
21 | "shasum": ""
22 | },
23 | "require": {
24 | "psr/container": "^1.0"
25 | },
26 | "type": "library",
27 | "autoload": {
28 | "psr-4": {
29 | "Interop\\Container\\": "src/Interop/Container/"
30 | }
31 | },
32 | "notification-url": "https://packagist.org/downloads/",
33 | "license": [
34 | "MIT"
35 | ],
36 | "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
37 | "homepage": "https://github.com/container-interop/container-interop",
38 | "time": "2017-02-14T19:40:03+00:00"
39 | },
40 | {
41 | "name": "nikic/fast-route",
42 | "version": "v0.6.0",
43 | "source": {
44 | "type": "git",
45 | "url": "https://github.com/nikic/FastRoute.git",
46 | "reference": "31fa86924556b80735f98b294a7ffdfb26789f22"
47 | },
48 | "dist": {
49 | "type": "zip",
50 | "url": "https://api.github.com/repos/nikic/FastRoute/zipball/31fa86924556b80735f98b294a7ffdfb26789f22",
51 | "reference": "31fa86924556b80735f98b294a7ffdfb26789f22",
52 | "shasum": ""
53 | },
54 | "require": {
55 | "php": ">=5.4.0"
56 | },
57 | "type": "library",
58 | "autoload": {
59 | "psr-4": {
60 | "FastRoute\\": "src/"
61 | },
62 | "files": [
63 | "src/functions.php"
64 | ]
65 | },
66 | "notification-url": "https://packagist.org/downloads/",
67 | "license": [
68 | "BSD-3-Clause"
69 | ],
70 | "authors": [
71 | {
72 | "name": "Nikita Popov",
73 | "email": "nikic@php.net"
74 | }
75 | ],
76 | "description": "Fast request router for PHP",
77 | "keywords": [
78 | "router",
79 | "routing"
80 | ],
81 | "time": "2015-06-18T19:15:47+00:00"
82 | },
83 | {
84 | "name": "pimple/pimple",
85 | "version": "v3.2.2",
86 | "source": {
87 | "type": "git",
88 | "url": "https://github.com/silexphp/Pimple.git",
89 | "reference": "4d45fb62d96418396ec58ba76e6f065bca16e10a"
90 | },
91 | "dist": {
92 | "type": "zip",
93 | "url": "https://api.github.com/repos/silexphp/Pimple/zipball/4d45fb62d96418396ec58ba76e6f065bca16e10a",
94 | "reference": "4d45fb62d96418396ec58ba76e6f065bca16e10a",
95 | "shasum": ""
96 | },
97 | "require": {
98 | "php": ">=5.3.0",
99 | "psr/container": "^1.0"
100 | },
101 | "require-dev": {
102 | "symfony/phpunit-bridge": "^3.2"
103 | },
104 | "type": "library",
105 | "extra": {
106 | "branch-alias": {
107 | "dev-master": "3.2.x-dev"
108 | }
109 | },
110 | "autoload": {
111 | "psr-0": {
112 | "Pimple": "src/"
113 | }
114 | },
115 | "notification-url": "https://packagist.org/downloads/",
116 | "license": [
117 | "MIT"
118 | ],
119 | "authors": [
120 | {
121 | "name": "Fabien Potencier",
122 | "email": "fabien@symfony.com"
123 | }
124 | ],
125 | "description": "Pimple, a simple Dependency Injection Container",
126 | "homepage": "http://pimple.sensiolabs.org",
127 | "keywords": [
128 | "container",
129 | "dependency injection"
130 | ],
131 | "time": "2017-07-23T07:32:15+00:00"
132 | },
133 | {
134 | "name": "psr/container",
135 | "version": "1.0.0",
136 | "source": {
137 | "type": "git",
138 | "url": "https://github.com/php-fig/container.git",
139 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
140 | },
141 | "dist": {
142 | "type": "zip",
143 | "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
144 | "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
145 | "shasum": ""
146 | },
147 | "require": {
148 | "php": ">=5.3.0"
149 | },
150 | "type": "library",
151 | "extra": {
152 | "branch-alias": {
153 | "dev-master": "1.0.x-dev"
154 | }
155 | },
156 | "autoload": {
157 | "psr-4": {
158 | "Psr\\Container\\": "src/"
159 | }
160 | },
161 | "notification-url": "https://packagist.org/downloads/",
162 | "license": [
163 | "MIT"
164 | ],
165 | "authors": [
166 | {
167 | "name": "PHP-FIG",
168 | "homepage": "http://www.php-fig.org/"
169 | }
170 | ],
171 | "description": "Common Container Interface (PHP FIG PSR-11)",
172 | "homepage": "https://github.com/php-fig/container",
173 | "keywords": [
174 | "PSR-11",
175 | "container",
176 | "container-interface",
177 | "container-interop",
178 | "psr"
179 | ],
180 | "time": "2017-02-14T16:28:37+00:00"
181 | },
182 | {
183 | "name": "psr/http-message",
184 | "version": "1.0.1",
185 | "source": {
186 | "type": "git",
187 | "url": "https://github.com/php-fig/http-message.git",
188 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
189 | },
190 | "dist": {
191 | "type": "zip",
192 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
193 | "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
194 | "shasum": ""
195 | },
196 | "require": {
197 | "php": ">=5.3.0"
198 | },
199 | "type": "library",
200 | "extra": {
201 | "branch-alias": {
202 | "dev-master": "1.0.x-dev"
203 | }
204 | },
205 | "autoload": {
206 | "psr-4": {
207 | "Psr\\Http\\Message\\": "src/"
208 | }
209 | },
210 | "notification-url": "https://packagist.org/downloads/",
211 | "license": [
212 | "MIT"
213 | ],
214 | "authors": [
215 | {
216 | "name": "PHP-FIG",
217 | "homepage": "http://www.php-fig.org/"
218 | }
219 | ],
220 | "description": "Common interface for HTTP messages",
221 | "homepage": "https://github.com/php-fig/http-message",
222 | "keywords": [
223 | "http",
224 | "http-message",
225 | "psr",
226 | "psr-7",
227 | "request",
228 | "response"
229 | ],
230 | "time": "2016-08-06T14:39:51+00:00"
231 | },
232 | {
233 | "name": "slim/slim",
234 | "version": "3.0.0",
235 | "source": {
236 | "type": "git",
237 | "url": "https://github.com/slimphp/Slim.git",
238 | "reference": "3b06f0f2d84dabbe81b6cea46ace46a3e883253e"
239 | },
240 | "dist": {
241 | "type": "zip",
242 | "url": "https://api.github.com/repos/slimphp/Slim/zipball/3b06f0f2d84dabbe81b6cea46ace46a3e883253e",
243 | "reference": "3b06f0f2d84dabbe81b6cea46ace46a3e883253e",
244 | "shasum": ""
245 | },
246 | "require": {
247 | "container-interop/container-interop": "^1.1",
248 | "nikic/fast-route": "^0.6",
249 | "php": ">=5.5.0",
250 | "pimple/pimple": "^3.0",
251 | "psr/http-message": "^1.0"
252 | },
253 | "require-dev": {
254 | "phpunit/phpunit": "^4.0"
255 | },
256 | "type": "library",
257 | "autoload": {
258 | "psr-4": {
259 | "Slim\\": "Slim"
260 | }
261 | },
262 | "notification-url": "https://packagist.org/downloads/",
263 | "license": [
264 | "MIT"
265 | ],
266 | "authors": [
267 | {
268 | "name": "Rob Allen",
269 | "email": "rob@akrabat.com",
270 | "homepage": "http://akrabat.com"
271 | },
272 | {
273 | "name": "Josh Lockhart",
274 | "email": "hello@joshlockhart.com",
275 | "homepage": "https://joshlockhart.com"
276 | },
277 | {
278 | "name": "Gabriel Manricks",
279 | "email": "gmanricks@me.com",
280 | "homepage": "http://gabrielmanricks.com"
281 | },
282 | {
283 | "name": "Andrew Smith",
284 | "email": "a.smith@silentworks.co.uk",
285 | "homepage": "http://silentworks.co.uk"
286 | }
287 | ],
288 | "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs",
289 | "homepage": "http://slimframework.com",
290 | "keywords": [
291 | "api",
292 | "framework",
293 | "micro",
294 | "router"
295 | ],
296 | "time": "2015-12-07T14:11:09+00:00"
297 | },
298 | {
299 | "name": "slim/twig-view",
300 | "version": "2.3.0",
301 | "source": {
302 | "type": "git",
303 | "url": "https://github.com/slimphp/Twig-View.git",
304 | "reference": "f6ff5ec3a24e11866376b8ffa235fbbb7e1d1301"
305 | },
306 | "dist": {
307 | "type": "zip",
308 | "url": "https://api.github.com/repos/slimphp/Twig-View/zipball/f6ff5ec3a24e11866376b8ffa235fbbb7e1d1301",
309 | "reference": "f6ff5ec3a24e11866376b8ffa235fbbb7e1d1301",
310 | "shasum": ""
311 | },
312 | "require": {
313 | "php": ">=5.5.0",
314 | "psr/http-message": "^1.0",
315 | "twig/twig": "^1.18|^2.0"
316 | },
317 | "require-dev": {
318 | "phpunit/phpunit": "^4.8|^5.7"
319 | },
320 | "type": "library",
321 | "autoload": {
322 | "psr-4": {
323 | "Slim\\Views\\": "src"
324 | }
325 | },
326 | "notification-url": "https://packagist.org/downloads/",
327 | "license": [
328 | "MIT"
329 | ],
330 | "authors": [
331 | {
332 | "name": "Josh Lockhart",
333 | "email": "hello@joshlockhart.com",
334 | "homepage": "http://joshlockhart.com"
335 | }
336 | ],
337 | "description": "Slim Framework 3 view helper built on top of the Twig 2 templating component",
338 | "homepage": "http://slimframework.com",
339 | "keywords": [
340 | "framework",
341 | "slim",
342 | "template",
343 | "twig",
344 | "view"
345 | ],
346 | "time": "2017-09-20T19:47:37+00:00"
347 | },
348 | {
349 | "name": "symfony/polyfill-mbstring",
350 | "version": "v1.6.0",
351 | "source": {
352 | "type": "git",
353 | "url": "https://github.com/symfony/polyfill-mbstring.git",
354 | "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
355 | },
356 | "dist": {
357 | "type": "zip",
358 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
359 | "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
360 | "shasum": ""
361 | },
362 | "require": {
363 | "php": ">=5.3.3"
364 | },
365 | "suggest": {
366 | "ext-mbstring": "For best performance"
367 | },
368 | "type": "library",
369 | "extra": {
370 | "branch-alias": {
371 | "dev-master": "1.6-dev"
372 | }
373 | },
374 | "autoload": {
375 | "psr-4": {
376 | "Symfony\\Polyfill\\Mbstring\\": ""
377 | },
378 | "files": [
379 | "bootstrap.php"
380 | ]
381 | },
382 | "notification-url": "https://packagist.org/downloads/",
383 | "license": [
384 | "MIT"
385 | ],
386 | "authors": [
387 | {
388 | "name": "Nicolas Grekas",
389 | "email": "p@tchwork.com"
390 | },
391 | {
392 | "name": "Symfony Community",
393 | "homepage": "https://symfony.com/contributors"
394 | }
395 | ],
396 | "description": "Symfony polyfill for the Mbstring extension",
397 | "homepage": "https://symfony.com",
398 | "keywords": [
399 | "compatibility",
400 | "mbstring",
401 | "polyfill",
402 | "portable",
403 | "shim"
404 | ],
405 | "time": "2017-10-11T12:05:26+00:00"
406 | },
407 | {
408 | "name": "twig/twig",
409 | "version": "v2.4.4",
410 | "source": {
411 | "type": "git",
412 | "url": "https://github.com/twigphp/Twig.git",
413 | "reference": "eddb97148ad779f27e670e1e3f19fb323aedafeb"
414 | },
415 | "dist": {
416 | "type": "zip",
417 | "url": "https://api.github.com/repos/twigphp/Twig/zipball/eddb97148ad779f27e670e1e3f19fb323aedafeb",
418 | "reference": "eddb97148ad779f27e670e1e3f19fb323aedafeb",
419 | "shasum": ""
420 | },
421 | "require": {
422 | "php": "^7.0",
423 | "symfony/polyfill-mbstring": "~1.0"
424 | },
425 | "require-dev": {
426 | "psr/container": "^1.0",
427 | "symfony/debug": "~2.7",
428 | "symfony/phpunit-bridge": "~3.3@dev"
429 | },
430 | "type": "library",
431 | "extra": {
432 | "branch-alias": {
433 | "dev-master": "2.4-dev"
434 | }
435 | },
436 | "autoload": {
437 | "psr-0": {
438 | "Twig_": "lib/"
439 | },
440 | "psr-4": {
441 | "Twig\\": "src/"
442 | }
443 | },
444 | "notification-url": "https://packagist.org/downloads/",
445 | "license": [
446 | "BSD-3-Clause"
447 | ],
448 | "authors": [
449 | {
450 | "name": "Fabien Potencier",
451 | "email": "fabien@symfony.com",
452 | "homepage": "http://fabien.potencier.org",
453 | "role": "Lead Developer"
454 | },
455 | {
456 | "name": "Armin Ronacher",
457 | "email": "armin.ronacher@active-4.com",
458 | "role": "Project Founder"
459 | },
460 | {
461 | "name": "Twig Team",
462 | "homepage": "http://twig.sensiolabs.org/contributors",
463 | "role": "Contributors"
464 | }
465 | ],
466 | "description": "Twig, the flexible, fast, and secure template language for PHP",
467 | "homepage": "http://twig.sensiolabs.org",
468 | "keywords": [
469 | "templating"
470 | ],
471 | "time": "2017-09-27T18:10:31+00:00"
472 | }
473 | ],
474 | "packages-dev": [],
475 | "aliases": [],
476 | "minimum-stability": "stable",
477 | "stability-flags": [],
478 | "prefer-stable": false,
479 | "prefer-lowest": false,
480 | "platform": [],
481 | "platform-dev": []
482 | }
483 |
--------------------------------------------------------------------------------
/config_blank.php:
--------------------------------------------------------------------------------
1 | "/var/www/portal",
4 | "DOMAIN" => "https://goodolddownloads.com",
5 | "DEV" => true
6 | ];
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 |
13 |
21 |
29 |
37 | {#
38 |
Visit our sites below where you can download free PC games from GOG, CPY, FitGirl, CODEX, RELOADED, SKIDROW by torrents & direct links.
39 |
#}
40 |
41 | {% endblock content %}
--------------------------------------------------------------------------------
/templates/main.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Good Old Downloads | Site Portal | Free GOG PC Games
8 |
9 |
10 |
11 |
12 |
13 | {{ loadCSS(['/static/css/style.css'], []) }}
14 |
15 |
16 |
17 |
18 |
19 | {% block meta %}{% endblock meta %}
20 |
24 |
25 |
26 |
27 | {% block content %}{% endblock content %}
28 |
29 |
--------------------------------------------------------------------------------
/twig.ext.php:
--------------------------------------------------------------------------------
1 | array('html'))),
6 | new \Twig_SimpleFunction('loadJS', array($this, 'loadJS'), array('is_safe' => array('html'))),
7 | );
8 | }
9 |
10 | public function getFilters(){
11 | return array(
12 | new \Twig_SimpleFilter('long2ip', array($this, 'long2ip')),
13 | new \Twig_SimpleFilter('convertBytes', array($this, 'convertBytes')),
14 | );
15 | }
16 |
17 | public function loadCSS($styles, $integrity = null){
18 | $ret = array();
19 | if (is_array($styles)) {
20 | foreach ($styles as $key => $value) {
21 | if ($integrity !== null) {
22 | if (!empty($integrity[$key])) {
23 | $integStr = ' integrity="'.$integrity[$key].'"';
24 | } else {
25 | $integStr = '';
26 | }
27 | }
28 | if (file_exists(__DIR__.'/web/'.$value)) {
29 | $ret[] = '';
30 | }
31 | }
32 | }
33 | return join($ret, "\n");
34 | }
35 | public function loadJS($scripts, $integrity = null){
36 | $ret = array();
37 | if (is_array($scripts)) {
38 | foreach ($scripts as $key => $value) {
39 | if ($integrity !== null) {
40 | if (!empty($integrity[$key])) {
41 | $integStr = ' integrity="'.$integrity[$key].'"';
42 | } else {
43 | $integStr = '';
44 | }
45 | }
46 | if (file_exists(__DIR__.'/web/'.$value)) {
47 | $ret[] = '';
48 | }
49 | }
50 | }
51 | return join($ret, "\n");
52 | }
53 | }
--------------------------------------------------------------------------------
/web/index.php:
--------------------------------------------------------------------------------
1 | add(function ($request, $response, $next) {
14 | $CORS = "default-src https:; script-src 'none'; object-src 'self'; style-src 'self'; img-src 'self'; media-src 'self'; child-src 'none'; font-src 'self'; connect-src 'none'";
15 |
16 | $response = $next($request, $response);
17 | return $response
18 | ->withHeader('Content-Security-Policy', $CORS)
19 | ->withHeader('X-Content-Security-Policy', $CORS)
20 | ->withHeader('X-WebKit-CSP', $CORS)
21 | ->withHeader('X-Follow-The-White-Rabbit', "https://www.youtube.com/watch?v=6GggY4TEYbk");
22 | });
23 |
24 | // Register component on container
25 | $container['view'] = function ($container) {
26 | global $CONFIG;
27 | $view = new \Slim\Views\Twig("{$CONFIG['BASEDIR']}/templates", [
28 | 'cache' => ($CONFIG['DEV'] ? false : "{$CONFIG['BASEDIR']}/twig_cache")
29 | ]);
30 | $twig = $view->getEnvironment();
31 |
32 | // Add extensions
33 | $uri = \Slim\Http\Uri::createFromEnvironment(new \Slim\Http\Environment($_SERVER));
34 | $view->addExtension(new \Slim\Views\TwigExtension($container->get('router'), $uri->withPort(null)));
35 |
36 | $twig->addExtension(new AppExtension());
37 | return $view;
38 | };
39 |
40 | // Remove slashes
41 | $app->add(function (Request $request, Response $response, callable $next) {
42 | $uri = $request->getUri();
43 | $path = $uri->getPath();
44 | if ($path != '/' && substr($path, -1) == '/') {
45 | $uri = $uri->withPath(substr($path, 0, -1))->withPort(null);
46 | if ($request->getMethod() == 'GET') {
47 | return $response->withRedirect((string)$uri, 301);
48 | } else {
49 | return $next($request->withUri($uri), $response);
50 | }
51 | }
52 | return $next($request, $response);
53 | });
54 |
55 | // Redirect to /enter on 404
56 | $container['notFoundHandler'] = function ($container) {
57 | return function ($request, $response) use ($container) {
58 | return $response->withRedirect("/", 301);
59 | };
60 | };
61 |
62 | $app->get('/', function ($request, $response, $args) {
63 | // Support for old urls
64 | if (isset($_GET['game'])) {
65 | if (is_numeric($_GET['game'])) {
66 | $gameid = intval($_GET['game']);
67 | return $response->withRedirect("https://goggames.goodolddownloads.com/?game=$gameid", 301);
68 | }
69 | }
70 | return $response->withRedirect("/enter", 301);
71 | });
72 |
73 | $app->get('/enter', function ($request, $response, $args) {
74 | return $this->view->render($response, 'index.twig');
75 | });
76 | $app->run();
--------------------------------------------------------------------------------
/web/static/css/_mq.scss:
--------------------------------------------------------------------------------
1 | @charset "UTF-8"; // Fixes an issue where Ruby locale is not set properly
2 | // See https://github.com/sass-mq/sass-mq/pull/10
3 |
4 | /// Base font size on the `` element
5 | /// @type Number (unit)
6 | $mq-base-font-size: 16px !default;
7 |
8 | /// Responsive mode
9 | ///
10 | /// Set to `false` to enable support for browsers that do not support @media queries,
11 | /// (IE <= 8, Firefox <= 3, Opera <= 9)
12 | ///
13 | /// You could create a stylesheet served exclusively to older browsers,
14 | /// where @media queries are rasterized
15 | ///
16 | /// @example scss
17 | /// // old-ie.scss
18 | /// $mq-responsive: false;
19 | /// @import 'main'; // @media queries in this file will be rasterized up to $mq-static-breakpoint
20 | /// // larger breakpoints will be ignored
21 | ///
22 | /// @type Boolean
23 | /// @link https://github.com/sass-mq/sass-mq#responsive-mode-off Disabled responsive mode documentation
24 | $mq-responsive: true !default;
25 |
26 | /// Breakpoint list
27 | ///
28 | /// Name your breakpoints in a way that creates a ubiquitous language
29 | /// across team members. It will improve communication between
30 | /// stakeholders, designers, developers, and testers.
31 | ///
32 | /// @type Map
33 | /// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint Full documentation and examples
34 | $mq-breakpoints: (
35 | mobile: 320px,
36 | tablet: 740px,
37 | desktop: 980px,
38 | wide: 1300px
39 | ) !default;
40 |
41 | /// Static breakpoint (for fixed-width layouts)
42 | ///
43 | /// Define the breakpoint from $mq-breakpoints that should
44 | /// be used as the target width for the fixed-width layout
45 | /// (i.e. when $mq-responsive is set to 'false') in a old-ie.scss
46 | ///
47 | /// @example scss
48 | /// // tablet-only.scss
49 | /// //
50 | /// // Ignore all styles above tablet breakpoint,
51 | /// // and fix the styles (e.g. layout) at tablet width
52 | /// $mq-responsive: false;
53 | /// $mq-static-breakpoint: tablet;
54 | /// @import 'main'; // @media queries in this file will be rasterized up to tablet
55 | /// // larger breakpoints will be ignored
56 | ///
57 | /// @type String
58 | /// @link https://github.com/sass-mq/sass-mq#adding-custom-breakpoints Full documentation and examples
59 | $mq-static-breakpoint: desktop !default;
60 |
61 | /// Show breakpoints in the top right corner
62 | ///
63 | /// If you want to display the currently active breakpoint in the top
64 | /// right corner of your site during development, add the breakpoints
65 | /// to this list, ordered by width, e.g. (mobile, tablet, desktop).
66 | ///
67 | /// @type map
68 | $mq-show-breakpoints: () !default;
69 |
70 | /// Customize the media type (e.g. `@media screen` or `@media print`)
71 | /// By default sass-mq uses an "all" media type (`@media all and …`)
72 | ///
73 | /// @type String
74 | /// @link https://github.com/sass-mq/sass-mq#changing-media-type Full documentation and examples
75 | $mq-media-type: all !default;
76 |
77 | /// Convert pixels to ems
78 | ///
79 | /// @param {Number} $px - value to convert
80 | /// @param {Number} $base-font-size ($mq-base-font-size) - `` font size
81 | ///
82 | /// @example scss
83 | /// $font-size-in-ems: mq-px2em(16px);
84 | /// p { font-size: mq-px2em(16px); }
85 | ///
86 | /// @requires $mq-base-font-size
87 | /// @returns {Number}
88 | @function mq-px2em($px, $base-font-size: $mq-base-font-size) {
89 | @if unitless($px) {
90 | @warn "Assuming #{$px} to be in pixels, attempting to convert it into pixels.";
91 | @return mq-px2em($px * 1px, $base-font-size);
92 | } @else if unit($px) == em {
93 | @return $px;
94 | }
95 | @return ($px / $base-font-size) * 1em;
96 | }
97 |
98 | /// Get a breakpoint's width
99 | ///
100 | /// @param {String} $name - Name of the breakpoint. One of $mq-breakpoints
101 | ///
102 | /// @example scss
103 | /// $tablet-width: mq-get-breakpoint-width(tablet);
104 | /// @media (min-width: mq-get-breakpoint-width(desktop)) {}
105 | ///
106 | /// @requires {Variable} $mq-breakpoints
107 | ///
108 | /// @returns {Number} Value in pixels
109 | @function mq-get-breakpoint-width($name, $breakpoints: $mq-breakpoints) {
110 | @if map-has-key($breakpoints, $name) {
111 | @return map-get($breakpoints, $name);
112 | } @else {
113 | @warn "Breakpoint #{$name} wasn't found in $breakpoints.";
114 | }
115 | }
116 |
117 | /// Media Query mixin
118 | ///
119 | /// @param {String | Boolean} $from (false) - One of $mq-breakpoints
120 | /// @param {String | Boolean} $until (false) - One of $mq-breakpoints
121 | /// @param {String | Boolean} $and (false) - Additional media query parameters
122 | /// @param {String} $media-type ($mq-media-type) - Media type: screen, print…
123 | ///
124 | /// @ignore Undocumented API, for advanced use only:
125 | /// @ignore @param {Map} $breakpoints ($mq-breakpoints)
126 | /// @ignore @param {String} $static-breakpoint ($mq-static-breakpoint)
127 | ///
128 | /// @content styling rules, wrapped into a @media query when $responsive is true
129 | ///
130 | /// @requires {Variable} $mq-media-type
131 | /// @requires {Variable} $mq-breakpoints
132 | /// @requires {Variable} $mq-static-breakpoint
133 | /// @requires {function} mq-px2em
134 | /// @requires {function} mq-get-breakpoint-width
135 | ///
136 | /// @link https://github.com/sass-mq/sass-mq#responsive-mode-on-default Full documentation and examples
137 | ///
138 | /// @example scss
139 | /// .element {
140 | /// @include mq($from: mobile) {
141 | /// color: red;
142 | /// }
143 | /// @include mq($until: tablet) {
144 | /// color: blue;
145 | /// }
146 | /// @include mq(mobile, tablet) {
147 | /// color: green;
148 | /// }
149 | /// @include mq($from: tablet, $and: '(orientation: landscape)') {
150 | /// color: teal;
151 | /// }
152 | /// @include mq(950px) {
153 | /// color: hotpink;
154 | /// }
155 | /// @include mq(tablet, $media-type: screen) {
156 | /// color: hotpink;
157 | /// }
158 | /// // Advanced use:
159 | /// $my-breakpoints: (L: 900px, XL: 1200px);
160 | /// @include mq(L, $breakpoints: $my-breakpoints, $static-breakpoint: L) {
161 | /// color: hotpink;
162 | /// }
163 | /// }
164 | @mixin mq(
165 | $from: false,
166 | $until: false,
167 | $and: false,
168 | $media-type: $mq-media-type,
169 | $breakpoints: $mq-breakpoints,
170 | $responsive: $mq-responsive,
171 | $static-breakpoint: $mq-static-breakpoint
172 | ) {
173 | $min-width: 0;
174 | $max-width: 0;
175 | $media-query: '';
176 |
177 | // From: this breakpoint (inclusive)
178 | @if $from {
179 | @if type-of($from) == number {
180 | $min-width: mq-px2em($from);
181 | } @else {
182 | $min-width: mq-px2em(mq-get-breakpoint-width($from, $breakpoints));
183 | }
184 | }
185 |
186 | // Until: that breakpoint (exclusive)
187 | @if $until {
188 | @if type-of($until) == number {
189 | $max-width: mq-px2em($until);
190 | } @else {
191 | $max-width: mq-px2em(mq-get-breakpoint-width($until, $breakpoints)) - .01em;
192 | }
193 | }
194 |
195 | // Responsive support is disabled, rasterize the output outside @media blocks
196 | // The browser will rely on the cascade itself.
197 | @if $responsive == false {
198 | $static-breakpoint-width: mq-get-breakpoint-width($static-breakpoint, $breakpoints);
199 | $target-width: mq-px2em($static-breakpoint-width);
200 |
201 | // Output only rules that start at or span our target width
202 | @if (
203 | $and == false
204 | and $min-width <= $target-width
205 | and (
206 | $until == false or $max-width >= $target-width
207 | )
208 | ) {
209 | @content;
210 | }
211 | }
212 |
213 | // Responsive support is enabled, output rules inside @media queries
214 | @else {
215 | @if $min-width != 0 { $media-query: '#{$media-query} and (min-width: #{$min-width})'; }
216 | @if $max-width != 0 { $media-query: '#{$media-query} and (max-width: #{$max-width})'; }
217 | @if $and { $media-query: '#{$media-query} and #{$and}'; }
218 |
219 | // Remove unnecessary media query prefix 'all and '
220 | @if ($media-type == 'all' and $media-query != '') {
221 | $media-type: '';
222 | $media-query: str-slice(unquote($media-query), 6);
223 | }
224 |
225 | @media #{$media-type + $media-query} {
226 | @content;
227 | }
228 | }
229 | }
230 |
231 | /// Add a breakpoint
232 | ///
233 | /// @param {String} $name - Name of the breakpoint
234 | /// @param {Number} $width - Width of the breakpoint
235 | ///
236 | /// @requires {Variable} $mq-breakpoints
237 | ///
238 | /// @example scss
239 | /// @include mq-add-breakpoint(tvscreen, 1920px);
240 | /// @include mq(tvscreen) {}
241 | @mixin mq-add-breakpoint($name, $width) {
242 | $new-breakpoint: ($name: $width);
243 | $mq-breakpoints: map-merge($mq-breakpoints, $new-breakpoint) !global;
244 | }
245 |
246 | /// Show the active breakpoint in the top right corner of the viewport
247 | /// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint
248 | ///
249 | /// @param {List} $show-breakpoints ($mq-show-breakpoints) - List of breakpoints to show in the top right corner
250 | /// @param {Map} $breakpoints ($mq-breakpoints) - Breakpoint names and sizes
251 | ///
252 | /// @requires {Variable} $mq-breakpoints
253 | /// @requires {Variable} $mq-show-breakpoints
254 | ///
255 | /// @example scss
256 | /// // Show breakpoints using global settings
257 | /// @include mq-show-breakpoints;
258 | ///
259 | /// // Show breakpoints using custom settings
260 | /// @include mq-show-breakpoints((L, XL), (S: 300px, L: 800px, XL: 1200px));
261 | @mixin mq-show-breakpoints($show-breakpoints: $mq-show-breakpoints, $breakpoints: $mq-breakpoints) {
262 | body:before {
263 | background-color: #FCF8E3;
264 | border-bottom: 1px solid #FBEED5;
265 | border-left: 1px solid #FBEED5;
266 | color: #C09853;
267 | font: small-caption;
268 | padding: 3px 6px;
269 | pointer-events: none;
270 | position: fixed;
271 | right: 0;
272 | top: 0;
273 | z-index: 100;
274 |
275 | // Loop through the breakpoints that should be shown
276 | @each $show-breakpoint in $show-breakpoints {
277 | $width: mq-get-breakpoint-width($show-breakpoint, $breakpoints);
278 | @include mq($show-breakpoint, $breakpoints: $breakpoints) {
279 | content: "#{$show-breakpoint} ≥ #{$width} (#{mq-px2em($width)})";
280 | }
281 | }
282 | }
283 | }
284 |
285 | @if length($mq-show-breakpoints) > 0 {
286 | @include mq-show-breakpoints;
287 | }
288 |
--------------------------------------------------------------------------------
/web/static/css/_normalize.scss:
--------------------------------------------------------------------------------
1 | /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
2 |
3 | /* Document
4 | ========================================================================== */
5 |
6 | /**
7 | * 1. Correct the line height in all browsers.
8 | * 2. Prevent adjustments of font size after orientation changes in
9 | * IE on Windows Phone and in iOS.
10 | */
11 |
12 | html {
13 | line-height: 1.15; /* 1 */
14 | -ms-text-size-adjust: 100%; /* 2 */
15 | -webkit-text-size-adjust: 100%; /* 2 */
16 | }
17 |
18 | /* Sections
19 | ========================================================================== */
20 |
21 | /**
22 | * Remove the margin in all browsers (opinionated).
23 | */
24 |
25 | body {
26 | margin: 0;
27 | }
28 |
29 | /**
30 | * Add the correct display in IE 9-.
31 | */
32 |
33 | article,
34 | aside,
35 | footer,
36 | header,
37 | nav,
38 | section {
39 | display: block;
40 | }
41 |
42 | /**
43 | * Correct the font size and margin on `h1` elements within `section` and
44 | * `article` contexts in Chrome, Firefox, and Safari.
45 | */
46 |
47 | h1 {
48 | font-size: 2em;
49 | margin: 0.67em 0;
50 | }
51 |
52 | /* Grouping content
53 | ========================================================================== */
54 |
55 | /**
56 | * Add the correct display in IE 9-.
57 | * 1. Add the correct display in IE.
58 | */
59 |
60 | figcaption,
61 | figure,
62 | main { /* 1 */
63 | display: block;
64 | }
65 |
66 | /**
67 | * Add the correct margin in IE 8.
68 | */
69 |
70 | figure {
71 | margin: 1em 40px;
72 | }
73 |
74 | /**
75 | * 1. Add the correct box sizing in Firefox.
76 | * 2. Show the overflow in Edge and IE.
77 | */
78 |
79 | hr {
80 | box-sizing: content-box; /* 1 */
81 | height: 0; /* 1 */
82 | overflow: visible; /* 2 */
83 | }
84 |
85 | /**
86 | * 1. Correct the inheritance and scaling of font size in all browsers.
87 | * 2. Correct the odd `em` font sizing in all browsers.
88 | */
89 |
90 | pre {
91 | font-family: monospace, monospace; /* 1 */
92 | font-size: 1em; /* 2 */
93 | }
94 |
95 | /* Text-level semantics
96 | ========================================================================== */
97 |
98 | /**
99 | * 1. Remove the gray background on active links in IE 10.
100 | * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
101 | */
102 |
103 | a {
104 | background-color: transparent; /* 1 */
105 | -webkit-text-decoration-skip: objects; /* 2 */
106 | }
107 |
108 | /**
109 | * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
110 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
111 | */
112 |
113 | abbr[title] {
114 | border-bottom: none; /* 1 */
115 | text-decoration: underline; /* 2 */
116 | text-decoration: underline dotted; /* 2 */
117 | }
118 |
119 | /**
120 | * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
121 | */
122 |
123 | b,
124 | strong {
125 | font-weight: inherit;
126 | }
127 |
128 | /**
129 | * Add the correct font weight in Chrome, Edge, and Safari.
130 | */
131 |
132 | b,
133 | strong {
134 | font-weight: bolder;
135 | }
136 |
137 | /**
138 | * 1. Correct the inheritance and scaling of font size in all browsers.
139 | * 2. Correct the odd `em` font sizing in all browsers.
140 | */
141 |
142 | code,
143 | kbd,
144 | samp {
145 | font-family: monospace, monospace; /* 1 */
146 | font-size: 1em; /* 2 */
147 | }
148 |
149 | /**
150 | * Add the correct font style in Android 4.3-.
151 | */
152 |
153 | dfn {
154 | font-style: italic;
155 | }
156 |
157 | /**
158 | * Add the correct background and color in IE 9-.
159 | */
160 |
161 | mark {
162 | background-color: #ff0;
163 | color: #000;
164 | }
165 |
166 | /**
167 | * Add the correct font size in all browsers.
168 | */
169 |
170 | small {
171 | font-size: 80%;
172 | }
173 |
174 | /**
175 | * Prevent `sub` and `sup` elements from affecting the line height in
176 | * all browsers.
177 | */
178 |
179 | sub,
180 | sup {
181 | font-size: 75%;
182 | line-height: 0;
183 | position: relative;
184 | vertical-align: baseline;
185 | }
186 |
187 | sub {
188 | bottom: -0.25em;
189 | }
190 |
191 | sup {
192 | top: -0.5em;
193 | }
194 |
195 | /* Embedded content
196 | ========================================================================== */
197 |
198 | /**
199 | * Add the correct display in IE 9-.
200 | */
201 |
202 | audio,
203 | video {
204 | display: inline-block;
205 | }
206 |
207 | /**
208 | * Add the correct display in iOS 4-7.
209 | */
210 |
211 | audio:not([controls]) {
212 | display: none;
213 | height: 0;
214 | }
215 |
216 | /**
217 | * Remove the border on images inside links in IE 10-.
218 | */
219 |
220 | img {
221 | border-style: none;
222 | }
223 |
224 | /**
225 | * Hide the overflow in IE.
226 | */
227 |
228 | svg:not(:root) {
229 | overflow: hidden;
230 | }
231 |
232 | /* Forms
233 | ========================================================================== */
234 |
235 | /**
236 | * 1. Change the font styles in all browsers (opinionated).
237 | * 2. Remove the margin in Firefox and Safari.
238 | */
239 |
240 | button,
241 | input,
242 | optgroup,
243 | select,
244 | textarea {
245 | font-family: sans-serif; /* 1 */
246 | font-size: 100%; /* 1 */
247 | line-height: 1.15; /* 1 */
248 | margin: 0; /* 2 */
249 | }
250 |
251 | /**
252 | * Show the overflow in IE.
253 | * 1. Show the overflow in Edge.
254 | */
255 |
256 | button,
257 | input { /* 1 */
258 | overflow: visible;
259 | }
260 |
261 | /**
262 | * Remove the inheritance of text transform in Edge, Firefox, and IE.
263 | * 1. Remove the inheritance of text transform in Firefox.
264 | */
265 |
266 | button,
267 | select { /* 1 */
268 | text-transform: none;
269 | }
270 |
271 | /**
272 | * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
273 | * controls in Android 4.
274 | * 2. Correct the inability to style clickable types in iOS and Safari.
275 | */
276 |
277 | button,
278 | html [type="button"], /* 1 */
279 | [type="reset"],
280 | [type="submit"] {
281 | -webkit-appearance: button; /* 2 */
282 | }
283 |
284 | /**
285 | * Remove the inner border and padding in Firefox.
286 | */
287 |
288 | button::-moz-focus-inner,
289 | [type="button"]::-moz-focus-inner,
290 | [type="reset"]::-moz-focus-inner,
291 | [type="submit"]::-moz-focus-inner {
292 | border-style: none;
293 | padding: 0;
294 | }
295 |
296 | /**
297 | * Restore the focus styles unset by the previous rule.
298 | */
299 |
300 | button:-moz-focusring,
301 | [type="button"]:-moz-focusring,
302 | [type="reset"]:-moz-focusring,
303 | [type="submit"]:-moz-focusring {
304 | outline: 1px dotted ButtonText;
305 | }
306 |
307 | /**
308 | * Correct the padding in Firefox.
309 | */
310 |
311 | fieldset {
312 | padding: 0.35em 0.75em 0.625em;
313 | }
314 |
315 | /**
316 | * 1. Correct the text wrapping in Edge and IE.
317 | * 2. Correct the color inheritance from `fieldset` elements in IE.
318 | * 3. Remove the padding so developers are not caught out when they zero out
319 | * `fieldset` elements in all browsers.
320 | */
321 |
322 | legend {
323 | box-sizing: border-box; /* 1 */
324 | color: inherit; /* 2 */
325 | display: table; /* 1 */
326 | max-width: 100%; /* 1 */
327 | padding: 0; /* 3 */
328 | white-space: normal; /* 1 */
329 | }
330 |
331 | /**
332 | * 1. Add the correct display in IE 9-.
333 | * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
334 | */
335 |
336 | progress {
337 | display: inline-block; /* 1 */
338 | vertical-align: baseline; /* 2 */
339 | }
340 |
341 | /**
342 | * Remove the default vertical scrollbar in IE.
343 | */
344 |
345 | textarea {
346 | overflow: auto;
347 | }
348 |
349 | /**
350 | * 1. Add the correct box sizing in IE 10-.
351 | * 2. Remove the padding in IE 10-.
352 | */
353 |
354 | [type="checkbox"],
355 | [type="radio"] {
356 | box-sizing: border-box; /* 1 */
357 | padding: 0; /* 2 */
358 | }
359 |
360 | /**
361 | * Correct the cursor style of increment and decrement buttons in Chrome.
362 | */
363 |
364 | [type="number"]::-webkit-inner-spin-button,
365 | [type="number"]::-webkit-outer-spin-button {
366 | height: auto;
367 | }
368 |
369 | /**
370 | * 1. Correct the odd appearance in Chrome and Safari.
371 | * 2. Correct the outline style in Safari.
372 | */
373 |
374 | [type="search"] {
375 | -webkit-appearance: textfield; /* 1 */
376 | outline-offset: -2px; /* 2 */
377 | }
378 |
379 | /**
380 | * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
381 | */
382 |
383 | [type="search"]::-webkit-search-cancel-button,
384 | [type="search"]::-webkit-search-decoration {
385 | -webkit-appearance: none;
386 | }
387 |
388 | /**
389 | * 1. Correct the inability to style clickable types in iOS and Safari.
390 | * 2. Change font properties to `inherit` in Safari.
391 | */
392 |
393 | ::-webkit-file-upload-button {
394 | -webkit-appearance: button; /* 1 */
395 | font: inherit; /* 2 */
396 | }
397 |
398 | /* Interactive
399 | ========================================================================== */
400 |
401 | /*
402 | * Add the correct display in IE 9-.
403 | * 1. Add the correct display in Edge, IE, and Firefox.
404 | */
405 |
406 | details, /* 1 */
407 | menu {
408 | display: block;
409 | }
410 |
411 | /*
412 | * Add the correct display in all browsers.
413 | */
414 |
415 | summary {
416 | display: list-item;
417 | }
418 |
419 | /* Scripting
420 | ========================================================================== */
421 |
422 | /**
423 | * Add the correct display in IE 9-.
424 | */
425 |
426 | canvas {
427 | display: inline-block;
428 | }
429 |
430 | /**
431 | * Add the correct display in IE.
432 | */
433 |
434 | template {
435 | display: none;
436 | }
437 |
438 | /* Hidden
439 | ========================================================================== */
440 |
441 | /**
442 | * Add the correct display in IE 10-.
443 | */
444 |
445 | [hidden] {
446 | display: none;
447 | }
448 |
--------------------------------------------------------------------------------
/web/static/css/_roboto.scss:
--------------------------------------------------------------------------------
1 | /* roboto-100 - latin */
2 | @font-face {
3 | font-family: 'Roboto';
4 | font-style: normal;
5 | font-weight: 100;
6 | src: url('../fonts/roboto-v18-latin-100.eot'); /* IE9 Compat Modes */
7 | src: local('Roboto Thin'), local('Roboto-Thin'),
8 | url('../fonts/roboto-v18-latin-100.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
9 | url('../fonts/roboto-v18-latin-100.woff2') format('woff2'), /* Super Modern Browsers */
10 | url('../fonts/roboto-v18-latin-100.woff') format('woff'), /* Modern Browsers */
11 | url('../fonts/roboto-v18-latin-100.ttf') format('truetype'), /* Safari, Android, iOS */
12 | url('../fonts/roboto-v18-latin-100.svg#Roboto') format('svg'); /* Legacy iOS */
13 | }
14 |
15 | /* roboto-regular - latin */
16 | @font-face {
17 | font-family: 'Roboto';
18 | font-style: normal;
19 | font-weight: 400;
20 | src: url('../fonts/roboto-v18-latin-regular.eot'); /* IE9 Compat Modes */
21 | src: local('Roboto'), local('Roboto-Regular'),
22 | url('../fonts/roboto-v18-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
23 | url('../fonts/roboto-v18-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
24 | url('../fonts/roboto-v18-latin-regular.woff') format('woff'), /* Modern Browsers */
25 | url('../fonts/roboto-v18-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
26 | url('../fonts/roboto-v18-latin-regular.svg#Roboto') format('svg'); /* Legacy iOS */
27 | }
28 |
--------------------------------------------------------------------------------
/web/static/css/style.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}@font-face{font-family:'Roboto';font-style:normal;font-weight:100;src:url("../fonts/roboto-v18-latin-100.eot");src:local("Roboto Thin"),local("Roboto-Thin"),url("../fonts/roboto-v18-latin-100.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto-v18-latin-100.woff2") format("woff2"),url("../fonts/roboto-v18-latin-100.woff") format("woff"),url("../fonts/roboto-v18-latin-100.ttf") format("truetype"),url("../fonts/roboto-v18-latin-100.svg#Roboto") format("svg")}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;src:url("../fonts/roboto-v18-latin-regular.eot");src:local("Roboto"),local("Roboto-Regular"),url("../fonts/roboto-v18-latin-regular.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto-v18-latin-regular.woff2") format("woff2"),url("../fonts/roboto-v18-latin-regular.woff") format("woff"),url("../fonts/roboto-v18-latin-regular.ttf") format("truetype"),url("../fonts/roboto-v18-latin-regular.svg#Roboto") format("svg")}*{-webkit-box-sizing:border-box;box-sizing:border-box;outline:none}html,body{font-family:'Roboto', sans-serif;background-color:#656565;height:100%;font-size:16px}.container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}@media (min-width: 48em){.container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;height:100%}}.top{color:#000;width:100%;text-align:center;-webkit-transition:color 230ms ease-out, text-shadow 230ms ease-out;transition:color 230ms ease-out, text-shadow 230ms ease-out;z-index:2}@media (min-width: 62em){.top{top:10%}}@media (min-width: 75em){.top{top:5%}}.top h1{font-size:2.5em;text-align:center;margin:0;color:inherit}@media (min-width: 62em){.top h1{font-size:5em}}.logo-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%}@media (min-width: 48em){.logo-container{width:33.3333%;-webkit-transform:translateX(0);transform:translateX(0)}}.logo-container:hover>.logo>img{-webkit-transform:scale(1.05);transform:scale(1.05)}.logo-container .logo{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;padding:50px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-decoration:none;z-index:2}.logo-container .logo>img{max-height:200px;height:100%;width:100%;margin:0 auto;-webkit-transition:-webkit-transform 120ms ease-out;transition:-webkit-transform 120ms ease-out;transition:transform 120ms ease-out;transition:transform 120ms ease-out, -webkit-transform 120ms ease-out}.logo-container .logo>span{display:block;color:#fff;font-size:3em;font-weight:100;text-align:center;margin:10px 0;text-shadow:1px 2px 4px rgba(0,0,0,0.5)}.logo-container .logo>p{text-align:center;text-shadow:1px 1px 4px rgba(0,0,0,0.8);font-weight:400}.rg.logo-container .logo{color:#167130}.sg.logo-container .logo{color:#ffd943}.gg.logo-container .logo{color:#9975e1}.gg.logo-container .logo>p{text-shadow:1px 1px 4px rgba(255,255,255,0.8)}.logo-container>.bg-blur{position:absolute;top:0;left:0;right:0;bottom:0;background-position:center;background-size:cover;overflow:hidden;text-align:center}.logo-container>.bg-blur::before{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.rg.logo-container>.bg-blur::before{background:rgba(22,113,48,0.15)}.sg.logo-container>.bg-blur::before{background:rgba(255,217,67,0.15)}.gg.logo-container>.bg-blur::before{background:rgba(106,77,165,0.15)}.logo-container>.bg-blur>img{position:absolute;-o-object-fit:cover;object-fit:cover;-webkit-filter:blur(25px);filter:blur(25px);left:-35%}@media (min-width: 48em){.logo-container>.bg-blur>img{left:0;-webkit-animation:screenshotScroll 170s ease infinite;animation:screenshotScroll 170s ease infinite}}@-webkit-keyframes screenshotScroll{0%{-webkit-transform:translateX(-30%);transform:translateX(-30%)}25%{-webkit-transform:translateX(-65%);transform:translateX(-65%)}50%{-webkit-transform:translateX(-5%);transform:translateX(-5%)}100%{-webkit-transform:translateX(-30%);transform:translateX(-30%)}}@keyframes screenshotScroll{0%{-webkit-transform:translateX(-30%);transform:translateX(-30%)}25%{-webkit-transform:translateX(-65%);transform:translateX(-65%)}50%{-webkit-transform:translateX(-5%);transform:translateX(-5%)}100%{-webkit-transform:translateX(-30%);transform:translateX(-30%)}}.btn{display:none;width:100%;height:100px;color:#fff;text-align:center;background:#f8f891;font-size:3em;line-height:1.7em;background:-webkit-gradient(linear, left top, left bottom, from(#f0f050), to(#f4dd00));background:linear-gradient(to bottom, #f0f050, #f4dd00);text-shadow:1px 2px 4px rgba(0,0,0,0.55)}.btn.god{background:-webkit-gradient(linear, left top, left bottom, from(#6a4da5), to(#6a4da5));background:linear-gradient(to bottom, #6a4da5, #6a4da5)}
2 | /*# sourceMappingURL=style.css.map */
--------------------------------------------------------------------------------
/web/static/css/style.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "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",
4 | "sources": ["_normalize.scss","_roboto.scss","style.scss","_mq.scss"],
5 | "names": [],
6 | "file": "style.css"
7 | }
8 |
--------------------------------------------------------------------------------
/web/static/css/style.scss:
--------------------------------------------------------------------------------
1 | @import 'normalize';
2 | @import 'roboto';
3 | @import 'mq';
4 |
5 | $mq-breakpoints: (
6 | xs: 576px,
7 | sm: 768px,
8 | md: 992px,
9 | lg: 1200px
10 | );
11 |
12 | * {
13 | box-sizing: border-box;
14 | outline: none;
15 | }
16 |
17 | html, body {
18 | font-family: 'Roboto', sans-serif;
19 | background-color: #656565;
20 | height: 100%;
21 | font-size: 16px;
22 | }
23 |
24 | .container {
25 | display: flex;
26 | flex-direction: column;
27 | justify-content: center;
28 | align-items: center;
29 | flex-wrap: wrap;
30 | @include mq($from: sm) {
31 | flex-direction: row;
32 | flex-wrap: nowrap;
33 | height: 100%;
34 | }
35 | }
36 |
37 | .top {
38 | color: #000;
39 | width: 100%;
40 | text-align: center;
41 | transition: color 230ms ease-out, text-shadow 230ms ease-out;
42 | z-index: 2;
43 | @include mq($from: md) {
44 | top: 10%;
45 | }
46 | @include mq($from: lg) {
47 | top: 5%;
48 | }
49 | h1 {
50 | font-size: 2.5em;
51 | text-align: center;
52 | margin: 0;
53 | color: inherit;
54 | @include mq($from: md) {
55 | font-size: 5em;
56 | }
57 | }
58 | }
59 |
60 | .logo-container {
61 | display: flex;
62 | position: relative;
63 | flex-direction: column;
64 | height: 100%;
65 | width: 100%;
66 | @include mq($from: sm) {
67 | width: 33.3333%;
68 | transform: translateX(0); // Reduce 1px width flicker. Still has a 1px black vertical line :(
69 | }
70 | &:hover {
71 | > .logo > img {
72 | transform: scale(1.05);
73 | }
74 | }
75 | .logo {
76 | display: flex;
77 | height: 100%;
78 | padding: 50px;
79 | flex-direction: column;
80 | justify-content: center;
81 | text-decoration: none;
82 | z-index: 2;
83 | > img {
84 | max-height: 200px;
85 | height: 100%;
86 | width: 100%;
87 | margin: 0 auto;
88 | transition: transform 120ms ease-out;
89 | @include mq($from: sm) {
90 |
91 | }
92 | }
93 | > span {
94 | display: block;
95 | color: #fff;
96 | font-size: 3em;
97 | font-weight: 100;
98 | text-align: center;
99 | margin: 10px 0;
100 | text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.5);
101 | @include mq($from: sm) {
102 |
103 | }
104 | }
105 | > p {
106 | text-align: center;
107 | text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.8);
108 | font-weight: 400;
109 | }
110 | @at-root {
111 | .rg#{&} {
112 | color: #167130;
113 | }
114 | .sg#{&} {
115 | color: #ffd943;
116 | }
117 | .gg#{&} {
118 | color: #9975e1;
119 | > p {
120 | text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.8);
121 | }
122 | }
123 | }
124 | }
125 | > .bg-blur {
126 | position: absolute;
127 | top: 0;
128 | left: 0;
129 | right: 0;
130 | bottom: 0;
131 | background-position: center;
132 | background-size: cover;
133 | overflow: hidden;
134 | text-align: center;
135 | &::before {
136 | content: '';
137 | display: block;
138 | position: absolute;
139 | top: 0;
140 | left: 0;
141 | right: 0;
142 | bottom: 0;
143 | z-index: 1;
144 | @at-root {
145 | .rg#{&} {
146 | background: rgba(#167130, .15);
147 | }
148 | .sg#{&} {
149 | background: rgba(#ffd943, .15);
150 | }
151 | .gg#{&} {
152 | background: rgba(#6a4da5, .15);
153 | }
154 | }
155 | }
156 | > img {
157 | position: absolute;
158 | object-fit: cover;
159 | filter: blur(25px);
160 | left: -35%;
161 | @include mq($from: sm) {
162 | left: 0;
163 | animation: screenshotScroll 170s ease infinite;
164 | }
165 | }
166 | }
167 | }
168 |
169 | @keyframes screenshotScroll {
170 | 0% {transform: translateX(-30%);}
171 | 25% {transform: translateX(-65%);}
172 | 50% {transform: translateX(-5%);}
173 | 100% {transform: translateX(-30%);}
174 | }
175 |
176 | .btn {
177 | display: none;
178 | width: 100%;
179 | height: 100px;
180 | color: #fff;
181 | text-align: center;
182 | background: #f8f891;
183 | font-size: 3em;
184 | line-height: 1.7em;
185 | background: linear-gradient(to bottom, #f0f050, #f4dd00);
186 | text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.55);
187 | &.god {
188 | background: linear-gradient(to bottom, #6a4da5, #6a4da5);
189 | }
190 | }
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-100.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-100.eot
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-100.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
314 |
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-100.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-100.ttf
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-100.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-100.woff
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-100.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-100.woff2
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-regular.eot
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
309 |
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-regular.ttf
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-regular.woff
--------------------------------------------------------------------------------
/web/static/fonts/roboto-v18-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/fonts/roboto-v18-latin-regular.woff2
--------------------------------------------------------------------------------
/web/static/img/favicon-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/img/favicon-16.png
--------------------------------------------------------------------------------
/web/static/img/favicon-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/img/favicon-32.png
--------------------------------------------------------------------------------
/web/static/img/favicon-96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/img/favicon-96.png
--------------------------------------------------------------------------------
/web/static/img/ggbg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/img/ggbg.png
--------------------------------------------------------------------------------
/web/static/img/god.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/web/static/img/rg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/web/static/img/rgbg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/img/rgbg.png
--------------------------------------------------------------------------------
/web/static/img/sg.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/web/static/img/sgbg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Good-Old-Downloads/portal/c99baff51b410093687e884aa104a2c4685f49b7/web/static/img/sgbg.png
--------------------------------------------------------------------------------