diff --git a/close_session.php b/close_session.php new file mode 100644 index 0000000..46c9274 --- /dev/null +++ b/close_session.php @@ -0,0 +1,7 @@ + diff --git a/cyberpunk.css b/cyberpunk.css new file mode 100644 index 0000000..21e7d93 --- /dev/null +++ b/cyberpunk.css @@ -0,0 +1,401 @@ +h1, +h2 { + margin: 0; + position: absolute; + z-index: 999; +} + +a { + color: #000000; +} + +section { + padding: 20px; +} + +.hero { + font-size: clamp(40px, 10vw, 100px); + line-height: 1; + display: inline-block; + color: #ff1111; + letter-spacing: 10px; + /* Bright things in dark environments usually cast that light, giving off a glow */ + filter: drop-shadow(0 1px 3px); + z-index: 999; +} + +.demo { + position: absolute; + height: 100px; + background: #000000; + +} + +.layers { + position: relative; + z-index: 999; +} + +.layers::before, +.layers::after { + content: attr(data-text); + position: relative; + width: 110%; + z-index: -1; +} + +.layers::before { + top: 10px; + left: 15px; + color: #e0287d; +} + +.layers::after { + top: 5px; + left: -10px; + color: #1bc7fb; +} + +.single-path { + -webkit-clip-path: polygon(0% 12%, 53% 12%, 53% 26%, 25% 26%, 25% 86%, 31% 86%, 31% 0%, 53% 0%, 53% 84%, 92% 84%, 92% 82%, 70% 82%, 70% 29%, 78% 29%, 78% 65%, 69% 65%, 69% 66%, 77% 66%, 77% 45%, 85% 45%, 85% 26%, 97% 26%, 97% 28%, 84% 28%, 84% 34%, 54% 34%, 54% 89%, 30% 89%, 30% 58%, 83% 58%, 83% 5%, 68% 5%, 68% 36%, 62% 36%, 62% 1%, 12% 1%, 12% 34%, 60% 34%, 60% 57%, 98% 57%, 98% 83%, 1% 83%, 1% 53%, 91% 53%, 91% 84%, 8% 84%, 8% 83%, 4% 83%); + clip-path: polygon(0% 12%, 53% 12%, 53% 26%, 25% 26%, 25% 86%, 31% 86%, 31% 0%, 53% 0%, 53% 84%, 92% 84%, 92% 82%, 70% 82%, 70% 29%, 78% 29%, 78% 65%, 69% 65%, 69% 66%, 77% 66%, 77% 45%, 85% 45%, 85% 26%, 97% 26%, 97% 28%, 84% 28%, 84% 34%, 54% 34%, 54% 89%, 30% 89%, 30% 58%, 83% 58%, 83% 5%, 68% 5%, 68% 36%, 62% 36%, 62% 1%, 12% 1%, 12% 34%, 60% 34%, 60% 57%, 98% 57%, 98% 83%, 1% 83%, 1% 53%, 91% 53%, 91% 84%, 8% 84%, 8% 83%, 4% 83%); +} + +.paths { + -webkit-animation: paths 5s step-end infinite; + animation: paths 5s step-end infinite; +} + +@-webkit-keyframes paths { + 0% { + -webkit-clip-path: polygon(0% 43%, 83% 43%, 83% 22%, 23% 22%, 23% 24%, 91% 24%, 91% 26%, 18% 26%, 18% 83%, 29% 83%, 29% 17%, 41% 17%, 41% 39%, 18% 39%, 18% 82%, 54% 82%, 54% 88%, 19% 88%, 19% 4%, 39% 4%, 39% 14%, 76% 14%, 76% 52%, 23% 52%, 23% 35%, 19% 35%, 19% 8%, 36% 8%, 36% 31%, 73% 31%, 73% 16%, 1% 16%, 1% 56%, 50% 56%, 50% 8%); + clip-path: polygon(0% 43%, 83% 43%, 83% 22%, 23% 22%, 23% 24%, 91% 24%, 91% 26%, 18% 26%, 18% 83%, 29% 83%, 29% 17%, 41% 17%, 41% 39%, 18% 39%, 18% 82%, 54% 82%, 54% 88%, 19% 88%, 19% 4%, 39% 4%, 39% 14%, 76% 14%, 76% 52%, 23% 52%, 23% 35%, 19% 35%, 19% 8%, 36% 8%, 36% 31%, 73% 31%, 73% 16%, 1% 16%, 1% 56%, 50% 56%, 50% 8%); + } + 5% { + -webkit-clip-path: polygon(0% 29%, 44% 29%, 44% 83%, 94% 83%, 94% 56%, 11% 56%, 11% 64%, 94% 64%, 94% 70%, 88% 70%, 88% 32%, 18% 32%, 18% 96%, 10% 96%, 10% 62%, 9% 62%, 9% 84%, 68% 84%, 68% 50%, 52% 50%, 52% 55%, 35% 55%, 35% 87%, 25% 87%, 25% 39%, 15% 39%, 15% 88%, 52% 88%); + clip-path: polygon(0% 29%, 44% 29%, 44% 83%, 94% 83%, 94% 56%, 11% 56%, 11% 64%, 94% 64%, 94% 70%, 88% 70%, 88% 32%, 18% 32%, 18% 96%, 10% 96%, 10% 62%, 9% 62%, 9% 84%, 68% 84%, 68% 50%, 52% 50%, 52% 55%, 35% 55%, 35% 87%, 25% 87%, 25% 39%, 15% 39%, 15% 88%, 52% 88%); + } + 30% { + -webkit-clip-path: polygon(0% 53%, 93% 53%, 93% 62%, 68% 62%, 68% 37%, 97% 37%, 97% 89%, 13% 89%, 13% 45%, 51% 45%, 51% 88%, 17% 88%, 17% 54%, 81% 54%, 81% 75%, 79% 75%, 79% 76%, 38% 76%, 38% 28%, 61% 28%, 61% 12%, 55% 12%, 55% 62%, 68% 62%, 68% 51%, 0% 51%, 0% 92%, 63% 92%, 63% 4%, 65% 4%); + clip-path: polygon(0% 53%, 93% 53%, 93% 62%, 68% 62%, 68% 37%, 97% 37%, 97% 89%, 13% 89%, 13% 45%, 51% 45%, 51% 88%, 17% 88%, 17% 54%, 81% 54%, 81% 75%, 79% 75%, 79% 76%, 38% 76%, 38% 28%, 61% 28%, 61% 12%, 55% 12%, 55% 62%, 68% 62%, 68% 51%, 0% 51%, 0% 92%, 63% 92%, 63% 4%, 65% 4%); + } + 45% { + -webkit-clip-path: polygon(0% 33%, 2% 33%, 2% 69%, 58% 69%, 58% 94%, 55% 94%, 55% 25%, 33% 25%, 33% 85%, 16% 85%, 16% 19%, 5% 19%, 5% 20%, 79% 20%, 79% 96%, 93% 96%, 93% 50%, 5% 50%, 5% 74%, 55% 74%, 55% 57%, 96% 57%, 96% 59%, 87% 59%, 87% 65%, 82% 65%, 82% 39%, 63% 39%, 63% 92%, 4% 92%, 4% 36%, 24% 36%, 24% 70%, 1% 70%, 1% 43%, 15% 43%, 15% 28%, 23% 28%, 23% 71%, 90% 71%, 90% 86%, 97% 86%, 97% 1%, 60% 1%, 60% 67%, 71% 67%, 71% 91%, 17% 91%, 17% 14%, 39% 14%, 39% 30%, 58% 30%, 58% 11%, 52% 11%, 52% 83%, 68% 83%); + clip-path: polygon(0% 33%, 2% 33%, 2% 69%, 58% 69%, 58% 94%, 55% 94%, 55% 25%, 33% 25%, 33% 85%, 16% 85%, 16% 19%, 5% 19%, 5% 20%, 79% 20%, 79% 96%, 93% 96%, 93% 50%, 5% 50%, 5% 74%, 55% 74%, 55% 57%, 96% 57%, 96% 59%, 87% 59%, 87% 65%, 82% 65%, 82% 39%, 63% 39%, 63% 92%, 4% 92%, 4% 36%, 24% 36%, 24% 70%, 1% 70%, 1% 43%, 15% 43%, 15% 28%, 23% 28%, 23% 71%, 90% 71%, 90% 86%, 97% 86%, 97% 1%, 60% 1%, 60% 67%, 71% 67%, 71% 91%, 17% 91%, 17% 14%, 39% 14%, 39% 30%, 58% 30%, 58% 11%, 52% 11%, 52% 83%, 68% 83%); + } + 76% { + -webkit-clip-path: polygon(0% 26%, 15% 26%, 15% 73%, 72% 73%, 72% 70%, 77% 70%, 77% 75%, 8% 75%, 8% 42%, 4% 42%, 4% 61%, 17% 61%, 17% 12%, 26% 12%, 26% 63%, 73% 63%, 73% 43%, 90% 43%, 90% 67%, 50% 67%, 50% 41%, 42% 41%, 42% 46%, 50% 46%, 50% 84%, 96% 84%, 96% 78%, 49% 78%, 49% 25%, 63% 25%, 63% 14%); + clip-path: polygon(0% 26%, 15% 26%, 15% 73%, 72% 73%, 72% 70%, 77% 70%, 77% 75%, 8% 75%, 8% 42%, 4% 42%, 4% 61%, 17% 61%, 17% 12%, 26% 12%, 26% 63%, 73% 63%, 73% 43%, 90% 43%, 90% 67%, 50% 67%, 50% 41%, 42% 41%, 42% 46%, 50% 46%, 50% 84%, 96% 84%, 96% 78%, 49% 78%, 49% 25%, 63% 25%, 63% 14%); + } + 90% { + -webkit-clip-path: polygon(0% 41%, 13% 41%, 13% 6%, 87% 6%, 87% 93%, 10% 93%, 10% 13%, 89% 13%, 89% 6%, 3% 6%, 3% 8%, 16% 8%, 16% 79%, 0% 79%, 0% 99%, 92% 99%, 92% 90%, 5% 90%, 5% 60%, 0% 60%, 0% 48%, 89% 48%, 89% 13%, 80% 13%, 80% 43%, 95% 43%, 95% 19%, 80% 19%, 80% 85%, 38% 85%, 38% 62%); + clip-path: polygon(0% 41%, 13% 41%, 13% 6%, 87% 6%, 87% 93%, 10% 93%, 10% 13%, 89% 13%, 89% 6%, 3% 6%, 3% 8%, 16% 8%, 16% 79%, 0% 79%, 0% 99%, 92% 99%, 92% 90%, 5% 90%, 5% 60%, 0% 60%, 0% 48%, 89% 48%, 89% 13%, 80% 13%, 80% 43%, 95% 43%, 95% 19%, 80% 19%, 80% 85%, 38% 85%, 38% 62%); + } + 1%, 7%, 33%, 47%, 78%, 93% { + -webkit-clip-path: none; + clip-path: none; + } +} + +@keyframes paths { + 0% { + -webkit-clip-path: polygon(0% 43%, 83% 43%, 83% 22%, 23% 22%, 23% 24%, 91% 24%, 91% 26%, 18% 26%, 18% 83%, 29% 83%, 29% 17%, 41% 17%, 41% 39%, 18% 39%, 18% 82%, 54% 82%, 54% 88%, 19% 88%, 19% 4%, 39% 4%, 39% 14%, 76% 14%, 76% 52%, 23% 52%, 23% 35%, 19% 35%, 19% 8%, 36% 8%, 36% 31%, 73% 31%, 73% 16%, 1% 16%, 1% 56%, 50% 56%, 50% 8%); + clip-path: polygon(0% 43%, 83% 43%, 83% 22%, 23% 22%, 23% 24%, 91% 24%, 91% 26%, 18% 26%, 18% 83%, 29% 83%, 29% 17%, 41% 17%, 41% 39%, 18% 39%, 18% 82%, 54% 82%, 54% 88%, 19% 88%, 19% 4%, 39% 4%, 39% 14%, 76% 14%, 76% 52%, 23% 52%, 23% 35%, 19% 35%, 19% 8%, 36% 8%, 36% 31%, 73% 31%, 73% 16%, 1% 16%, 1% 56%, 50% 56%, 50% 8%); + } + 5% { + -webkit-clip-path: polygon(0% 29%, 44% 29%, 44% 83%, 94% 83%, 94% 56%, 11% 56%, 11% 64%, 94% 64%, 94% 70%, 88% 70%, 88% 32%, 18% 32%, 18% 96%, 10% 96%, 10% 62%, 9% 62%, 9% 84%, 68% 84%, 68% 50%, 52% 50%, 52% 55%, 35% 55%, 35% 87%, 25% 87%, 25% 39%, 15% 39%, 15% 88%, 52% 88%); + clip-path: polygon(0% 29%, 44% 29%, 44% 83%, 94% 83%, 94% 56%, 11% 56%, 11% 64%, 94% 64%, 94% 70%, 88% 70%, 88% 32%, 18% 32%, 18% 96%, 10% 96%, 10% 62%, 9% 62%, 9% 84%, 68% 84%, 68% 50%, 52% 50%, 52% 55%, 35% 55%, 35% 87%, 25% 87%, 25% 39%, 15% 39%, 15% 88%, 52% 88%); + } + 30% { + -webkit-clip-path: polygon(0% 53%, 93% 53%, 93% 62%, 68% 62%, 68% 37%, 97% 37%, 97% 89%, 13% 89%, 13% 45%, 51% 45%, 51% 88%, 17% 88%, 17% 54%, 81% 54%, 81% 75%, 79% 75%, 79% 76%, 38% 76%, 38% 28%, 61% 28%, 61% 12%, 55% 12%, 55% 62%, 68% 62%, 68% 51%, 0% 51%, 0% 92%, 63% 92%, 63% 4%, 65% 4%); + clip-path: polygon(0% 53%, 93% 53%, 93% 62%, 68% 62%, 68% 37%, 97% 37%, 97% 89%, 13% 89%, 13% 45%, 51% 45%, 51% 88%, 17% 88%, 17% 54%, 81% 54%, 81% 75%, 79% 75%, 79% 76%, 38% 76%, 38% 28%, 61% 28%, 61% 12%, 55% 12%, 55% 62%, 68% 62%, 68% 51%, 0% 51%, 0% 92%, 63% 92%, 63% 4%, 65% 4%); + } + 45% { + -webkit-clip-path: polygon(0% 33%, 2% 33%, 2% 69%, 58% 69%, 58% 94%, 55% 94%, 55% 25%, 33% 25%, 33% 85%, 16% 85%, 16% 19%, 5% 19%, 5% 20%, 79% 20%, 79% 96%, 93% 96%, 93% 50%, 5% 50%, 5% 74%, 55% 74%, 55% 57%, 96% 57%, 96% 59%, 87% 59%, 87% 65%, 82% 65%, 82% 39%, 63% 39%, 63% 92%, 4% 92%, 4% 36%, 24% 36%, 24% 70%, 1% 70%, 1% 43%, 15% 43%, 15% 28%, 23% 28%, 23% 71%, 90% 71%, 90% 86%, 97% 86%, 97% 1%, 60% 1%, 60% 67%, 71% 67%, 71% 91%, 17% 91%, 17% 14%, 39% 14%, 39% 30%, 58% 30%, 58% 11%, 52% 11%, 52% 83%, 68% 83%); + clip-path: polygon(0% 33%, 2% 33%, 2% 69%, 58% 69%, 58% 94%, 55% 94%, 55% 25%, 33% 25%, 33% 85%, 16% 85%, 16% 19%, 5% 19%, 5% 20%, 79% 20%, 79% 96%, 93% 96%, 93% 50%, 5% 50%, 5% 74%, 55% 74%, 55% 57%, 96% 57%, 96% 59%, 87% 59%, 87% 65%, 82% 65%, 82% 39%, 63% 39%, 63% 92%, 4% 92%, 4% 36%, 24% 36%, 24% 70%, 1% 70%, 1% 43%, 15% 43%, 15% 28%, 23% 28%, 23% 71%, 90% 71%, 90% 86%, 97% 86%, 97% 1%, 60% 1%, 60% 67%, 71% 67%, 71% 91%, 17% 91%, 17% 14%, 39% 14%, 39% 30%, 58% 30%, 58% 11%, 52% 11%, 52% 83%, 68% 83%); + } + 76% { + -webkit-clip-path: polygon(0% 26%, 15% 26%, 15% 73%, 72% 73%, 72% 70%, 77% 70%, 77% 75%, 8% 75%, 8% 42%, 4% 42%, 4% 61%, 17% 61%, 17% 12%, 26% 12%, 26% 63%, 73% 63%, 73% 43%, 90% 43%, 90% 67%, 50% 67%, 50% 41%, 42% 41%, 42% 46%, 50% 46%, 50% 84%, 96% 84%, 96% 78%, 49% 78%, 49% 25%, 63% 25%, 63% 14%); + clip-path: polygon(0% 26%, 15% 26%, 15% 73%, 72% 73%, 72% 70%, 77% 70%, 77% 75%, 8% 75%, 8% 42%, 4% 42%, 4% 61%, 17% 61%, 17% 12%, 26% 12%, 26% 63%, 73% 63%, 73% 43%, 90% 43%, 90% 67%, 50% 67%, 50% 41%, 42% 41%, 42% 46%, 50% 46%, 50% 84%, 96% 84%, 96% 78%, 49% 78%, 49% 25%, 63% 25%, 63% 14%); + } + 90% { + -webkit-clip-path: polygon(0% 41%, 13% 41%, 13% 6%, 87% 6%, 87% 93%, 10% 93%, 10% 13%, 89% 13%, 89% 6%, 3% 6%, 3% 8%, 16% 8%, 16% 79%, 0% 79%, 0% 99%, 92% 99%, 92% 90%, 5% 90%, 5% 60%, 0% 60%, 0% 48%, 89% 48%, 89% 13%, 80% 13%, 80% 43%, 95% 43%, 95% 19%, 80% 19%, 80% 85%, 38% 85%, 38% 62%); + clip-path: polygon(0% 41%, 13% 41%, 13% 6%, 87% 6%, 87% 93%, 10% 93%, 10% 13%, 89% 13%, 89% 6%, 3% 6%, 3% 8%, 16% 8%, 16% 79%, 0% 79%, 0% 99%, 92% 99%, 92% 90%, 5% 90%, 5% 60%, 0% 60%, 0% 48%, 89% 48%, 89% 13%, 80% 13%, 80% 43%, 95% 43%, 95% 19%, 80% 19%, 80% 85%, 38% 85%, 38% 62%); + } + 1%, 7%, 33%, 47%, 78%, 93% { + -webkit-clip-path: none; + clip-path: none; + } +} +.movement { + /* Normally this position would be absolute & on the layers, set to relative here so we can see it on the div */ + position: relative; + -webkit-animation: movement 8s step-end infinite; + animation: movement 8s step-end infinite; +} + +@-webkit-keyframes movement { + 0% { + top: 0px; + left: -20px; + } + 15% { + top: 10px; + left: 10px; + } + 60% { + top: 5px; + left: -10px; + } + 75% { + top: -5px; + left: 20px; + } + 100% { + top: 10px; + left: 5px; + } +} + +@keyframes movement { + 0% { + top: 0px; + left: -20px; + } + 15% { + top: 10px; + left: 10px; + } + 60% { + top: 5px; + left: -10px; + } + 75% { + top: -5px; + left: 20px; + } + 100% { + top: 10px; + left: 5px; + } +} +.opacity { + -webkit-animation: opacity 5s step-end infinite; + animation: opacity 5s step-end infinite; +} + +@-webkit-keyframes opacity { + 0% { + opacity: 0.1; + } + 5% { + opacity: 0.7; + } + 30% { + opacity: 0.4; + } + 45% { + opacity: 0.6; + } + 76% { + opacity: 0.4; + } + 90% { + opacity: 0.8; + } + 1%, 7%, 33%, 47%, 78%, 93% { + opacity: 0; + } +} + +@keyframes opacity { + 0% { + opacity: 0.1; + } + 5% { + opacity: 0.7; + } + 30% { + opacity: 0.4; + } + 45% { + opacity: 0.6; + } + 76% { + opacity: 0.4; + } + 90% { + opacity: 0.8; + } + 1%, 7%, 33%, 47%, 78%, 93% { + opacity: 0; + } +} +.font { + -webkit-animation: font 7s step-end infinite; + animation: font 7s step-end infinite; +} + +@-webkit-keyframes font { + 0% { + font-weight: 100; + color: #e0287d; + filter: blur(3px); + } + 20% { + font-weight: 500; + color: #000000; + filter: blur(0); + } + 50% { + font-weight: 300; + color: #1bc7fb; + filter: blur(2px); + } + 60% { + font-weight: 700; + color: #000000; + filter: blur(0); + } + 90% { + font-weight: 500; + color: #e0287d; + filter: blur(6px); + } +} + +@keyframes font { + 0% { + font-weight: 100; + color: #e0287d; + filter: blur(3px); + } + 20% { + font-weight: 500; + color: #000000; + filter: blur(0); + } + 50% { + font-weight: 300; + color: #1bc7fb; + filter: blur(2px); + } + 60% { + font-weight: 700; + color: #000000; + filter: blur(0); + } + 90% { + font-weight: 500; + color: #e0287d; + filter: blur(6px); + } +} +.glitch span { + -webkit-animation: paths 5s step-end infinite; + animation: paths 5s step-end infinite; +} + +.glitch::before { + -webkit-animation: paths 5s step-end infinite, opacity 5s step-end infinite, font 8s step-end infinite, movement 10s step-end infinite; + animation: paths 5s step-end infinite, opacity 5s step-end infinite, font 8s step-end infinite, movement 10s step-end infinite; +} + +.glitch::after { + -webkit-animation: paths 5s step-end infinite, opacity 5s step-end infinite, font 7s step-end infinite, movement 8s step-end infinite; + animation: paths 5s step-end infinite, opacity 5s step-end infinite, font 7s step-end infinite, movement 8s step-end infinite; +} + +.hero-container { + position:absolute; + top: 90%; + left: 20%; +} +a{ + text-decoration: none; +} + +@-webkit-keyframes blink { + 0.01% { + opacity: 0; + } + 50% { + opacity: 0; + } + 50.01% { + opacity: 1; + } +} + +@keyframes blink { + 0.01% { + opacity: 0; + } + 50% { + opacity: 0; + } + 50.01% { + opacity: 1; + } +} +@-webkit-keyframes scanline { + 0.01% { + height: 0; + } + 99.99% { + height: 100%; + } + 100% { + height: 0; + } +} +@keyframes scanline { + 0.01% { + height: 0; + } + 99.99% { + height: 100%; + } + 100% { + height: 0; + } +} +html { + font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; + text-shadow: 0 0 5px rgba(255, 255, 255, 0.3); + background-color: #0f0000; + background-image: url(http://api.thumbr.it/whitenoise-200x200.png?background=00000000&noise=626262&density=15&opacity=15); + background-size: 100px; + color: red; + height: 100%; +} + + + +p, +pre { + font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; + font-size: inherit; + line-height: 1; + margin: 0; + display: block; + padding: 5px; +} + +.blink { + opacity: 1; + -webkit-animation: blink 1s linear infinite; + animation: blink 1s linear infinite; +} + +.scanline { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(255, 255, 255, 0.02); + -webkit-animation: scanline 8s linear infinite; + animation: scanline 8s linear infinite; + pointer-events: none; +}/*# sourceMappingURL=cyberpunk.css.map */ \ No newline at end of file diff --git a/cyberpunk.css.map b/cyberpunk.css.map new file mode 100644 index 0000000..f05f468 --- /dev/null +++ b/cyberpunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["cyberpunk.scss","cyberpunk.css"],"names":[],"mappings":"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","file":"cyberpunk.css"} \ No newline at end of file diff --git a/cyberpunk.scss b/cyberpunk.scss new file mode 100644 index 0000000..62f7200 --- /dev/null +++ b/cyberpunk.scss @@ -0,0 +1,577 @@ +h1, +h2 { + margin: 0; + position: absolute; + z-index: 999; +} + +a { + color: #000000; +} + +section { + padding: 20px; +} + +.hero { + font-size: clamp(40px, 10vw, 100px); + line-height: 1; + display: inline-block; + color: #ff1111; + + letter-spacing: 10px; + + /* Bright things in dark environments usually cast that light, giving off a glow */ + filter: drop-shadow(0 1px 3px); + z-index: 999; +} + +.demo { + position: absolute; + height: 100px; + background: #000000; + z-index: 999; +} + +.layers { + position: relative; + z-index: 999; +} + +.layers::before, +.layers::after { + content: attr(data-text); + position: relative; + width: 110%; + z-index: -1; +} + +.layers::before { + top: 10px; + left: 15px; + color: #e0287d; +} + +.layers::after { + top: 5px; + left: -10px; + color: #1bc7fb; +} + +.single-path { + clip-path: polygon( + 0% 12%, + 53% 12%, + 53% 26%, + 25% 26%, + 25% 86%, + 31% 86%, + 31% 0%, + 53% 0%, + 53% 84%, + 92% 84%, + 92% 82%, + 70% 82%, + 70% 29%, + 78% 29%, + 78% 65%, + 69% 65%, + 69% 66%, + 77% 66%, + 77% 45%, + 85% 45%, + 85% 26%, + 97% 26%, + 97% 28%, + 84% 28%, + 84% 34%, + 54% 34%, + 54% 89%, + 30% 89%, + 30% 58%, + 83% 58%, + 83% 5%, + 68% 5%, + 68% 36%, + 62% 36%, + 62% 1%, + 12% 1%, + 12% 34%, + 60% 34%, + 60% 57%, + 98% 57%, + 98% 83%, + 1% 83%, + 1% 53%, + 91% 53%, + 91% 84%, + 8% 84%, + 8% 83%, + 4% 83% + ); +} + +.paths { + animation: paths 5s step-end infinite; +} + +@keyframes paths { + 0% { + clip-path: polygon( + 0% 43%, + 83% 43%, + 83% 22%, + 23% 22%, + 23% 24%, + 91% 24%, + 91% 26%, + 18% 26%, + 18% 83%, + 29% 83%, + 29% 17%, + 41% 17%, + 41% 39%, + 18% 39%, + 18% 82%, + 54% 82%, + 54% 88%, + 19% 88%, + 19% 4%, + 39% 4%, + 39% 14%, + 76% 14%, + 76% 52%, + 23% 52%, + 23% 35%, + 19% 35%, + 19% 8%, + 36% 8%, + 36% 31%, + 73% 31%, + 73% 16%, + 1% 16%, + 1% 56%, + 50% 56%, + 50% 8% + ); + } + + 5% { + clip-path: polygon( + 0% 29%, + 44% 29%, + 44% 83%, + 94% 83%, + 94% 56%, + 11% 56%, + 11% 64%, + 94% 64%, + 94% 70%, + 88% 70%, + 88% 32%, + 18% 32%, + 18% 96%, + 10% 96%, + 10% 62%, + 9% 62%, + 9% 84%, + 68% 84%, + 68% 50%, + 52% 50%, + 52% 55%, + 35% 55%, + 35% 87%, + 25% 87%, + 25% 39%, + 15% 39%, + 15% 88%, + 52% 88% + ); + } + + 30% { + clip-path: polygon( + 0% 53%, + 93% 53%, + 93% 62%, + 68% 62%, + 68% 37%, + 97% 37%, + 97% 89%, + 13% 89%, + 13% 45%, + 51% 45%, + 51% 88%, + 17% 88%, + 17% 54%, + 81% 54%, + 81% 75%, + 79% 75%, + 79% 76%, + 38% 76%, + 38% 28%, + 61% 28%, + 61% 12%, + 55% 12%, + 55% 62%, + 68% 62%, + 68% 51%, + 0% 51%, + 0% 92%, + 63% 92%, + 63% 4%, + 65% 4% + ); + } + + 45% { + clip-path: polygon( + 0% 33%, + 2% 33%, + 2% 69%, + 58% 69%, + 58% 94%, + 55% 94%, + 55% 25%, + 33% 25%, + 33% 85%, + 16% 85%, + 16% 19%, + 5% 19%, + 5% 20%, + 79% 20%, + 79% 96%, + 93% 96%, + 93% 50%, + 5% 50%, + 5% 74%, + 55% 74%, + 55% 57%, + 96% 57%, + 96% 59%, + 87% 59%, + 87% 65%, + 82% 65%, + 82% 39%, + 63% 39%, + 63% 92%, + 4% 92%, + 4% 36%, + 24% 36%, + 24% 70%, + 1% 70%, + 1% 43%, + 15% 43%, + 15% 28%, + 23% 28%, + 23% 71%, + 90% 71%, + 90% 86%, + 97% 86%, + 97% 1%, + 60% 1%, + 60% 67%, + 71% 67%, + 71% 91%, + 17% 91%, + 17% 14%, + 39% 14%, + 39% 30%, + 58% 30%, + 58% 11%, + 52% 11%, + 52% 83%, + 68% 83% + ); + } + + 76% { + clip-path: polygon( + 0% 26%, + 15% 26%, + 15% 73%, + 72% 73%, + 72% 70%, + 77% 70%, + 77% 75%, + 8% 75%, + 8% 42%, + 4% 42%, + 4% 61%, + 17% 61%, + 17% 12%, + 26% 12%, + 26% 63%, + 73% 63%, + 73% 43%, + 90% 43%, + 90% 67%, + 50% 67%, + 50% 41%, + 42% 41%, + 42% 46%, + 50% 46%, + 50% 84%, + 96% 84%, + 96% 78%, + 49% 78%, + 49% 25%, + 63% 25%, + 63% 14% + ); + } + + 90% { + clip-path: polygon( + 0% 41%, + 13% 41%, + 13% 6%, + 87% 6%, + 87% 93%, + 10% 93%, + 10% 13%, + 89% 13%, + 89% 6%, + 3% 6%, + 3% 8%, + 16% 8%, + 16% 79%, + 0% 79%, + 0% 99%, + 92% 99%, + 92% 90%, + 5% 90%, + 5% 60%, + 0% 60%, + 0% 48%, + 89% 48%, + 89% 13%, + 80% 13%, + 80% 43%, + 95% 43%, + 95% 19%, + 80% 19%, + 80% 85%, + 38% 85%, + 38% 62% + ); + } + + 1%, + 7%, + 33%, + 47%, + 78%, + 93% { + clip-path: none; + } +} + +.movement { + /* Normally this position would be absolute & on the layers, set to relative here so we can see it on the div */ + position: relative; + animation: movement 8s step-end infinite; +} + +@keyframes movement { + 0% { + top: 0px; + left: -20px; + } + + 15% { + top: 10px; + left: 10px; + } + + 60% { + top: 5px; + left: -10px; + } + + 75% { + top: -5px; + left: 20px; + } + + 100% { + top: 10px; + left: 5px; + } +} + +.opacity { + animation: opacity 5s step-end infinite; +} + +@keyframes opacity { + 0% { + opacity: 0.1; + } + + 5% { + opacity: 0.7; + } + + 30% { + opacity: 0.4; + } + + 45% { + opacity: 0.6; + } + + 76% { + opacity: 0.4; + } + + 90% { + opacity: 0.8; + } + + 1%, + 7%, + 33%, + 47%, + 78%, + 93% { + opacity: 0; + } +} + +.font { + animation: font 7s step-end infinite; +} + +@keyframes font { + 0% { + font-weight: 100; + color: #e0287d; + filter: blur(3px); + } + + 20% { + font-weight: 500; + color: #000000; + filter: blur(0); + } + + 50% { + font-weight: 300; + color: #1bc7fb; + filter: blur(2px); + } + + 60% { + font-weight: 700; + color: #000000; + filter: blur(0); + } + + 90% { + font-weight: 500; + color: #e0287d; + filter: blur(6px); + } +} + +.glitch span { + animation: paths 5s step-end infinite; +} + +.glitch::before { + animation: paths 5s step-end infinite, opacity 5s step-end infinite, + font 8s step-end infinite, movement 10s step-end infinite; +} + +.glitch::after { + animation: paths 5s step-end infinite, opacity 5s step-end infinite, + font 7s step-end infinite, movement 8s step-end infinite; +} + +.hero-container { + position: absolute; + padding: 65rem 0; + left: 45%; + z-index: 999; +} + + + + + + + + + +$theme: red; +$font-mono: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; + + +// Blink on and off +@keyframes blink { + 0.01% { + opacity: 0; + } + 50% { + opacity: 0; + } + 50.01% { + opacity: 1; + } +} + + +// Scanline height 1005 +@keyframes scanline { + 0.01% { + height: 0; + } + 99.99% { + height: 100% + } + 100% { + height: 0; + } +} + +html { + font-family: $font-mono; + text-shadow: 0 0 5px rgba(255,255,255,0.3); + background-color: darken($theme, 47%); + background-image: url(http://api.thumbr.it/whitenoise-200x200.png?background=00000000&noise=626262&density=15&opacity=15); + background-size: 100px; + color: $theme; + height: 100%; +} + +body { + margin: 0; + padding: 16px; +} + +p, +pre { + font-family: $font-mono; + font-size: inherit; + line-height: 1; + margin: 0; + display: block; + padding: 5px; +} + +.blink { + opacity: 1; + animation: blink 1s linear infinite; +} + +.scanline { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(255,255,255,0.02); + animation: scanline 8s linear infinite; + pointer-events: none; +} \ No newline at end of file diff --git a/error.css b/error.css new file mode 100644 index 0000000..8040f40 --- /dev/null +++ b/error.css @@ -0,0 +1,498 @@ +body { + background: black; + font-family: sans-serif; + } + + h1, + h2 { + margin: 0; + } + + a { + color: #ff1111; + } + + section { + padding: 20px; + } + + .hero { + font-size: clamp(40px, 10vw, 100px); + line-height: 1; + display: inline-block; + color: #ff1111; + z-index: 2; + letter-spacing: 10px; + + /* Bright things in dark environments usually cast that light, giving off a glow */ + filter: drop-shadow(0 1px 3px); + } + + .demo { + height: 100px; + background: #ff1111; + } + + .layers { + position: relative; + } + + .layers::before, + .layers::after { + content: attr(data-text); + position: absolute; + width: 110%; + z-index: -1; + } + + .layers::before { + top: 10px; + left: 15px; + color: #e0287d; + } + + .layers::after { + top: 5px; + left: -10px; + color: #1bc7fb; + } + + .single-path { + clip-path: polygon( + 0% 12%, + 53% 12%, + 53% 26%, + 25% 26%, + 25% 86%, + 31% 86%, + 31% 0%, + 53% 0%, + 53% 84%, + 92% 84%, + 92% 82%, + 70% 82%, + 70% 29%, + 78% 29%, + 78% 65%, + 69% 65%, + 69% 66%, + 77% 66%, + 77% 45%, + 85% 45%, + 85% 26%, + 97% 26%, + 97% 28%, + 84% 28%, + 84% 34%, + 54% 34%, + 54% 89%, + 30% 89%, + 30% 58%, + 83% 58%, + 83% 5%, + 68% 5%, + 68% 36%, + 62% 36%, + 62% 1%, + 12% 1%, + 12% 34%, + 60% 34%, + 60% 57%, + 98% 57%, + 98% 83%, + 1% 83%, + 1% 53%, + 91% 53%, + 91% 84%, + 8% 84%, + 8% 83%, + 4% 83% + ); + } + + .paths { + animation: paths 5s step-end infinite; + } + + @keyframes paths { + 0% { + clip-path: polygon( + 0% 43%, + 83% 43%, + 83% 22%, + 23% 22%, + 23% 24%, + 91% 24%, + 91% 26%, + 18% 26%, + 18% 83%, + 29% 83%, + 29% 17%, + 41% 17%, + 41% 39%, + 18% 39%, + 18% 82%, + 54% 82%, + 54% 88%, + 19% 88%, + 19% 4%, + 39% 4%, + 39% 14%, + 76% 14%, + 76% 52%, + 23% 52%, + 23% 35%, + 19% 35%, + 19% 8%, + 36% 8%, + 36% 31%, + 73% 31%, + 73% 16%, + 1% 16%, + 1% 56%, + 50% 56%, + 50% 8% + ); + } + + 5% { + clip-path: polygon( + 0% 29%, + 44% 29%, + 44% 83%, + 94% 83%, + 94% 56%, + 11% 56%, + 11% 64%, + 94% 64%, + 94% 70%, + 88% 70%, + 88% 32%, + 18% 32%, + 18% 96%, + 10% 96%, + 10% 62%, + 9% 62%, + 9% 84%, + 68% 84%, + 68% 50%, + 52% 50%, + 52% 55%, + 35% 55%, + 35% 87%, + 25% 87%, + 25% 39%, + 15% 39%, + 15% 88%, + 52% 88% + ); + } + + 30% { + clip-path: polygon( + 0% 53%, + 93% 53%, + 93% 62%, + 68% 62%, + 68% 37%, + 97% 37%, + 97% 89%, + 13% 89%, + 13% 45%, + 51% 45%, + 51% 88%, + 17% 88%, + 17% 54%, + 81% 54%, + 81% 75%, + 79% 75%, + 79% 76%, + 38% 76%, + 38% 28%, + 61% 28%, + 61% 12%, + 55% 12%, + 55% 62%, + 68% 62%, + 68% 51%, + 0% 51%, + 0% 92%, + 63% 92%, + 63% 4%, + 65% 4% + ); + } + + 45% { + clip-path: polygon( + 0% 33%, + 2% 33%, + 2% 69%, + 58% 69%, + 58% 94%, + 55% 94%, + 55% 25%, + 33% 25%, + 33% 85%, + 16% 85%, + 16% 19%, + 5% 19%, + 5% 20%, + 79% 20%, + 79% 96%, + 93% 96%, + 93% 50%, + 5% 50%, + 5% 74%, + 55% 74%, + 55% 57%, + 96% 57%, + 96% 59%, + 87% 59%, + 87% 65%, + 82% 65%, + 82% 39%, + 63% 39%, + 63% 92%, + 4% 92%, + 4% 36%, + 24% 36%, + 24% 70%, + 1% 70%, + 1% 43%, + 15% 43%, + 15% 28%, + 23% 28%, + 23% 71%, + 90% 71%, + 90% 86%, + 97% 86%, + 97% 1%, + 60% 1%, + 60% 67%, + 71% 67%, + 71% 91%, + 17% 91%, + 17% 14%, + 39% 14%, + 39% 30%, + 58% 30%, + 58% 11%, + 52% 11%, + 52% 83%, + 68% 83% + ); + } + + 76% { + clip-path: polygon( + 0% 26%, + 15% 26%, + 15% 73%, + 72% 73%, + 72% 70%, + 77% 70%, + 77% 75%, + 8% 75%, + 8% 42%, + 4% 42%, + 4% 61%, + 17% 61%, + 17% 12%, + 26% 12%, + 26% 63%, + 73% 63%, + 73% 43%, + 90% 43%, + 90% 67%, + 50% 67%, + 50% 41%, + 42% 41%, + 42% 46%, + 50% 46%, + 50% 84%, + 96% 84%, + 96% 78%, + 49% 78%, + 49% 25%, + 63% 25%, + 63% 14% + ); + } + + 90% { + clip-path: polygon( + 0% 41%, + 13% 41%, + 13% 6%, + 87% 6%, + 87% 93%, + 10% 93%, + 10% 13%, + 89% 13%, + 89% 6%, + 3% 6%, + 3% 8%, + 16% 8%, + 16% 79%, + 0% 79%, + 0% 99%, + 92% 99%, + 92% 90%, + 5% 90%, + 5% 60%, + 0% 60%, + 0% 48%, + 89% 48%, + 89% 13%, + 80% 13%, + 80% 43%, + 95% 43%, + 95% 19%, + 80% 19%, + 80% 85%, + 38% 85%, + 38% 62% + ); + } + + 1%, + 7%, + 33%, + 47%, + 78%, + 93% { + clip-path: none; + } + } + + .movement { + /* Normally this position would be absolute & on the layers, set to relative here so we can see it on the div */ + position: relative; + animation: movement 8s step-end infinite; + } + + @keyframes movement { + 0% { + top: 0px; + left: -20px; + } + + 15% { + top: 10px; + left: 10px; + } + + 60% { + top: 5px; + left: -10px; + } + + 75% { + top: -5px; + left: 20px; + } + + 100% { + top: 10px; + left: 5px; + } + } + + .opacity { + animation: opacity 5s step-end infinite; + } + + @keyframes opacity { + 0% { + opacity: 0.1; + } + + 5% { + opacity: 0.7; + } + + 30% { + opacity: 0.4; + } + + 45% { + opacity: 0.6; + } + + 76% { + opacity: 0.4; + } + + 90% { + opacity: 0.8; + } + + 1%, + 7%, + 33%, + 47%, + 78%, + 93% { + opacity: 0; + } + } + + .font { + animation: font 7s step-end infinite; + } + + @keyframes font { + 0% { + font-weight: 100; + color: #e0287d; + filter: blur(3px); + } + + 20% { + font-weight: 500; + color: #ff1111; + filter: blur(0); + } + + 50% { + font-weight: 300; + color: #1bc7fb; + filter: blur(2px); + } + + 60% { + font-weight: 700; + color: #ff1111; + filter: blur(0); + } + + 90% { + font-weight: 500; + color: #e0287d; + filter: blur(6px); + } + } + + .glitch span { + animation: paths 5s step-end infinite; + } + + .glitch::before { + animation: paths 5s step-end infinite, opacity 5s step-end infinite, + font 8s step-end infinite, movement 10s step-end infinite; + } + + .glitch::after { + animation: paths 5s step-end infinite, opacity 5s step-end infinite, + font 7s step-end infinite, movement 8s step-end infinite; + } + + .hero-container { + position: relative; + padding: 200px 0; + text-align: center; + } + + + \ No newline at end of file diff --git a/error.html b/error.html new file mode 100644 index 0000000..7d5f7fe --- /dev/null +++ b/error.html @@ -0,0 +1,21 @@ + + +
+ + + + + +█
+