:root { /* 1 is the base color, <1 are darker variations and >1 are lighter */ --bg-shade-0: #131733; --bg-shade-1: #1B1F3B; --bg-shade-2: #23274A; --bg-shade-3: #373C65; --bg-shade-4: #494F81; --accent-shade-0: #673DB6; --accent-shade-1: #9D6FF3; --accent-shade-2: #A185D6; --accent-shade-3: #CAB1FB; --text-shade-0: #8990C1; --text-shade-1: #A1A8D9; --text-shade-2: #CAC1F5; --text-shade-3: #fff; --green-shade-0: #37a985; --green-shade-1: #59c9a5; --red-shade-1: #a9375b; --border: rgba(255, 255, 255, 0.1); } body { background: var(--bg-shade-1); padding-bottom: env(safe-area-inset-bottom); } body, .main-body { width: 100%; max-width: 100vw; position: relative; /* This fixes overflow-x not hiding on Safari on mobile */ overflow-x: hidden; margin: 0; color: var(--text-shade-3); justify-content: center; font-family: Poppins, Arial, Helvetica, sans-serif; } .main-body { overflow-y: hidden; /* Fixes the dowuble scrollbars caused by the last background circle */ } .animateDot { animation: dotAnimation 10s infinite; } @keyframes dotAnimation { 0% { cx: 0; cy: 0; } 50% { cx: 10px; cy: 10px; } 100% { cx: 0; cy: 0; } } .wrapper { width: 95%; max-width: 1590px; margin: 0 auto; } h1.dot:not([data-title-suffix]):after, h2.dot:not([data-title-suffix]):after { content: ""; background-color: var(--accent-shade-1); width: 0.6rem; height: 0.6rem; border-radius: 50%; display: inline-block; } h1.dot[data-title-suffix]:after, h2.dot[data-title-suffix]:after { content: attr(data-title-suffix); display: inline-block; color: var(--accent-shade-1); } /* Misc */ .purple-circle { position: absolute; z-index: -2; width: 2100px; height: 1700px; background: var(--bg-shade-0); border-radius: 50%; top: -250px; right: -1420px; } .light-purple-circle { background: var(--accent-shade-3); width: 500px; height: 500px; position: relative; top: 60%; left: 50%; transform: translate(calc(-50% - 35px), -50%); border-radius: 50%; z-index: -1; /* Tmp */ display: flex; justify-content: center; align-items: center; } .light-purple-circle .n2ds { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin-left: -40px; z-index: 1; } .light-purple-circle .deco { position: absolute; top: 50%; left: 50%; transform: translate(-50%, calc(-50% + 70px)); z-index: -2; } /* Twemoji */ img.emoji { height: 1em; width: 1em; margin: 0 .05em 0 .1em; vertical-align: -0.1em; } /* Title business */ .sect .title[id] { padding-top: 100px; margin-top: -100px; } /* Hero */ .hero { /* height: 775px; /* To line it up with the design */ display: grid; align-items: center; grid-template-columns: 1fr 1fr; } .progress-hero { width: 100%; display: flex; justify-items: center; align-items: center; text-align: center; } .progress-hero svg { width: 3rem; height: 3rem; } .progress-hero .text { max-width: 423px; } .progress-hero .text a { color: var(--accent-shade-1); text-decoration: none; font-weight: bold; } .progress-hero .text a:hover { text-decoration: underline; } .hero-meta { margin-top: 25vh; } .hero-meta.reduced-margin { margin: 10vh 0; width: 100%; } .hero-meta.reduced-margin h1 { width: 100%; } .hero-meta.reduced-margin p { margin: 0 auto; } .hero-image { position: relative; height: 100%; } .hero .title, .hero .subtitle { margin: 0; } .hero .subtitle { font-size: 1.9rem; font-weight: 300; margin-bottom: -0.5em; } .hero .title { font-size: 4rem; } .text { font-size: 1rem; color: var(--text-shade-1); width: 86%; line-height: 1.8; margin: 0; margin-top: 0.5rem; } /* BUTTONS */ .hero .buttons { margin-top: 40px; display: flex; flex-wrap: wrap; align-items: flex-start; } .hero .buttons a { text-decoration: none; } .hero .button.secondary { padding: 0; } .button.secondary.discord svg { margin-bottom: -1px; } .do-button-margin { margin-bottom: 15px; margin-right: 15px; } /* Non-hero sections */ .sect .title { font-size: 3.125rem; } section.progress { margin-top: 400px; } .column-2 { display: grid; grid-template-columns: repeat(2, 1fr); } .sect .title { margin: 0; } .sect .text { margin: 22px 0; width: 64%; line-height: 1.7; } section.progress .left, section.progress .right { padding: 50px 0; } section.progress .right { position: relative; padding-left: 80px; background: var(--accent-shade-0); border-top-left-radius: 10px; border-bottom-left-radius: 10px; } section.progress .right .title a { text-decoration: none; color: var(--text-shade-3); } section.progress .right .title a:hover { text-decoration: underline; } section.progress .right:before { content: ""; width: 300vw; position: absolute; height: 100%; background: yellow; left: 90%; margin-top: -50px; background: var(--accent-shade-0); z-index: -1; } section.faq { margin-top: 200px; } .questions { margin-top: 30px; grid-gap: 30px; } .questions > div > * + * { margin-top: 15px; } .question-and-answer summary { font-size: 1.5625rem; color: var(--text-shade-2); } .question-and-answer[open] summary { color: var(--text-shade-3); } .question-and-answer summary:hover { color: var(--text-shade-3); text-decoration: underline; cursor: pointer; } .question-and-answer .text { margin: 5px 0; line-height: 1.85; color: var(--text-shade-0); } .question-and-answer .text a { color: var(--accent-shade-1); text-decoration: none; font-weight: bold; } .question-and-answer .text a:hover { text-decoration: underline; } section.showcase { position: relative; margin-top: 160px; padding: 220px 0; } section.showcase::before { content: ""; width: 400vw; margin-left: -50vw; background: linear-gradient(180deg, rgba(19, 22, 36, 0) 0%, var(--bg-shade-0) 100%); position: absolute; top: 0; bottom: 0; z-index: -1; } section.showcase .text { max-width: 504px; margin-bottom: 132px; } section.showcase .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 24px; } section.showcase .grid .item { background: var(--bg-shade-2); border-radius: 10px; padding: 42px 36px; } section.showcase .grid .item.highlight { border: 2px solid var(--accent-shade-1); } section.showcase .grid .item svg { height: 36px; color: var(--accent-shade-1); } section.showcase .grid .item h1 { margin-top: 14px; margin-bottom: 6px; font-weight: 600; } section.showcase .grid .item p { margin: 0; color: var(--text-shade-1) } section.team { margin-top: 220px; } .team .team-top { text-align: center; display: flex; flex-wrap: wrap; justify-content: center; } .team .team-top .text { width: 24%; margin: 0; margin-top: 6px; } .team .team-top .title { width: 100%; } .team-cards { display: flex; justify-content: center; flex-wrap: wrap; margin: -10px; margin-top: 80px; } .team-cards .card { margin: 10px; } .card { width: calc(100% - 54px); min-width: 100px; max-width: 460px; padding: 18px 27px; display: grid; grid-template-columns: 110px 1fr; grid-gap: 20px; background: var(--bg-shade-0); grid-column: span 2; border-radius: 10px; align-items: center; } .card .card-left { background: white; border-radius: 12px; } .card .pfp { width: 100%; border-radius: 10px; display: block; } .card .text, .card .title { margin: 0; } .card .sub { color: var(--green-shade-1); font-size: .875rem; } .card .title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px; } .card .github { text-decoration: none; color: inherit; } .card .github svg { width: 1.5em; height: 1.5em; display: block; } .card .text { color: var(--text-shade-1); } section.team-helpers { position: relative; margin-top: 160px; overflow: hidden; } section.team-helpers .text { max-width: 504px; margin-bottom: 132px; } section.team-helpers .team-helpers-cards { display: inline-grid; grid-template-columns: repeat(12, 1fr); grid-gap: 20px; margin-right: 20px; color: var(--text-shade-1); width: max-content; } section.team-helpers .row { width: fit-content; } section.team-helpers .row.first { animation: infiniteScrollRow1 25s linear infinite; } section.team-helpers .row.second { animation: infiniteScrollRow2 25s linear infinite; } @keyframes infiniteScrollRow1 { 0% { transform: translate3d(0); } 100% { transform: translate3d(calc(100% / -3), 0, 0); } } @keyframes infiniteScrollRow2 { 0% { transform: translate3d(calc(100% / -3), 0, 0); } 100% { transform: translate3d(0, 0, 0); } } section.team-helpers .animation-wrapper { transform: rotate(-5deg); position:relative; top: -90px; padding: 20px; /* Needed for the star not to get cut off */ } section.team-helpers .animation-wrapper::after { content: ""; position: absolute; top: 0; width: 101%; /* If set to 100% it doesn't cover it completely */ left: -0.5%; height: 100%; background: linear-gradient(90deg, var(--bg-shade-1) 0%, rgba(27, 31, 59, 0) 20%, rgba(27, 31, 59, 0) 80%, var(--bg-shade-1) 100%); z-index: 1; pointer-events: none; } /* This fixes overflow-x: hidden; not working correctly on Firefox (https://i.imgur.com/TpM0CEB.png) * and WebKit (https://i.imgur.com/290nYsb.png) */ section.team-helpers .animation-wrapper .row-wrapper { position: relative; padding: 20px; width: 100%; height: 100%; } section.team-helpers .animation-wrapper .row-wrapper::before { content: ""; position: absolute; top: 0; width: 100%; left: calc(-100% - 20px); height: 100%; background: var(--bg-shade-1); z-index: 2; pointer-events: none; } section.team-helpers .animation-wrapper .row-wrapper::after { content: ""; position: absolute; top: 0; width: 100%; left: calc(100% - 20px); height: 100%; background: var(--bg-shade-1); z-index: 2; pointer-events: none; } section.team-helpers .animation-wrapper .row { white-space: nowrap; } section.team-helpers .animation-wrapper .row.second { margin-top: 20px; } section.team-helpers .helper-card { text-decoration: none; display: flex; flex-direction: row; align-items: center; padding: 14px 24px; background: var(--bg-shade-0); border-radius: 12px; min-width: 480px; } section.team-helpers .helper-card:hover { background: var(--bg-shade-2); transition: 200ms; } section.team-helpers .helper-card.special { position: relative; box-shadow: 0px 0px 0px 2px rgba(211, 225, 87, 0.6) inset; } section.team-helpers .helper-card.special::after { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='31.571' height='30.218' viewBox='0 0 31.571 30.218'%3E%3Cpath id='Icon_awesome-star' data-name='Icon awesome-star' d='M15.533,1.05,11.68,8.863,3.058,10.12a1.889,1.889,0,0,0-1.044,3.222L8.251,19.42,6.776,28.006A1.887,1.887,0,0,0,9.514,30l7.713-4.054L24.94,30a1.889,1.889,0,0,0,2.738-1.989L26.2,19.42l6.237-6.078A1.889,1.889,0,0,0,31.4,10.12L22.774,8.863,18.92,1.05a1.89,1.89,0,0,0-3.387,0Z' transform='translate(-1.441 0.001)' fill='%23d3e848'/%3E%3C/svg%3E%0A"); position: absolute; width: 30px; height: 30px; top: -13px; right: -13px; } section.team-helpers .row.second .helper-card { position:relative; left: calc(-250% - 50px); } section.team-helpers .helper-card .img-wrapper { background: #fff; border-radius: 100%; margin-right: 14px; width: 48px; height: 48px; } section.team-helpers .helper-card .pfp { border-radius: 100%; width: 48px; height: 48px; } section.team-helpers .helper-card span { color: var(--text-shade-3); font-weight: 600; margin-right: 0.6ch; } section.team-helpers .helper-card p { color: var(--text-shade-1); } section.update-signup { position: relative; width: 100%; display: flex; flex-flow: column; justify-items: center; align-items: center; text-align: center; margin-top: 160px; padding-top: 240px; padding-bottom: 300px; } section.update-signup svg { width: 4rem; height: 4rem; margin-bottom: 42px; } section.update-signup .text { margin-top: 8px; max-width: 423px; } section.update-signup .floating-serverjoin { display: grid; grid-template-columns: repeat(2, auto); gap: 18px; width: 100%; max-width: 576px; background: var(--bg-shade-0); border-radius: 6px; padding: 18px; overflow-x: hidden; } section.update-signup .floating-serverjoin p { color: var(--text-shade-1); margin: auto; margin-left: 0; } section.update-signup .floating-serverjoin a { color: var(--text-shade-3); text-decoration: none; background: var(--accent-shade-0); margin: 0; margin-left: auto; padding: 9px 18px; border-radius: 5px; width: fit-content; height: fit-content; } section.update-signup div.circle { display: block; background: var(--bg-shade-2); /* the next 4 lines make it so the circle is always the same aspect ratio and covers enough of the screen */ width: 2591px; height: 1454px; min-width: 135vw; min-height: 76vw; /* yes, this is supposed to be in vw */ border-radius: 100%; position: absolute; top: 0; z-index: -1; } /* Progress */ .donation-progress { padding: 50px 20px; border-radius: 10px; background: var(--bg-shade-0); grid-column: span 2; } .donation-progress h1 { display: inline-block; margin: 0; } .donation-progress span { font-weight: bold; } .donation-progress a { color: var(--accent-shade-1); text-decoration: none; font-weight: bold; } .donation-progress a:hover { text-decoration: underline; } .progress-bar { position: relative; display: block; width: 100%; height: 12px; margin: 1rem 0; border-radius: 6px; background: var(--bg-shade-3); overflow: hidden; } .progress-bar-inner { height: 100%; background-color: var(--accent-shade-0); } .all-progress-lists { margin-top: 50px; display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 20px; } .feature-list-wrapper { display: grid; grid-template-columns: auto 1fr; grid-gap: 20px; margin-top: 22px; } .feature-progress-chart { max-width: 100px; } .feature-progress-chart canvas.percentage-chart { pointer-events: none; /* Fixes issue #48 */ } .feature-list-wrapper h3 { margin: 0; } .feature-list-wrapper hr { border: 0; width: 100%; height: 1px; margin: 20px 0; background: rgba(255, 255, 255, 0.1); } .progress-title { margin-bottom: 20px; } .progress-title a.github { margin-top: 10px; color: var(--text-shade-0); display: inline-flex; align-items: center; opacity: .75; text-decoration: none; transition: color 50ms ease-in-out; } .progress-title a.github:focus, .progress-title a.github:hover, .progress-title a.github:visited { color: var(--text-shade-0); text-decoration: none; } .progress-title a.github:hover { opacity: 1; } .progress-title a.github svg { height: 1.3rem; margin-right: .4rem; } .feature-list-wrapper.purple .progress-title a.github, .feature-list-wrapper.purple .progress-title a.github:focus, .feature-list-wrapper.purple .progress-title a.github:hover, .feature-list-wrapper.purple .progress-title a.github:visited { color: var(--accent-shade-3); } .feature-list-wrapper .core > .progress-title a.github:hover { color: white; } .feature-list-wrapper canvas { width: 100px; height: 100px; } .feature-progress-chart { position: relative; } .feature-progress-chart p { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; font-weight: bolder; font-size: 1.3rem; } /* Progress: Feature list */ .feature-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); grid-gap: 10px; } .feature { display: grid; align-items: flex-start; grid-template-columns: auto 1fr; grid-gap: 10px; } /* Custom checkboxes */ .custom-checkbox { width: 1.5rem; height: 1.5rem; background: var(--bg-shade-3); color: var(--text-shade-3); border-radius: 2px; display: flex; justify-content: center; align-items: center; } .custom-checkbox.done { background: #50AC75; } .custom-checkbox.ongoing { background: #DBAC5B; } .custom-checkbox svg { width: 100%; height: 100%; } .custom-checkbox .small-dot { width: 0.5rem; height: 0.5rem; background: white; border-radius: 50%; } /* Bright purple cards */ .purple-card { padding: 50px 20px; border-radius: 10px; background: var(--bg-shade-0); } @media screen and (min-width: 701px) and (max-width: 1500px) { .light-purple-circle { width: 400px; height: 400px; } img.n2ds { width: 432px; } .deco svg { transform: scale(0.8); /* :/ */ } .purple-circle { right: auto; left: 60vw; } } @media screen and (max-width: 900px) { .all-progress-lists { grid-template-columns: 100%; } .feature-list-wrapper { grid-template-columns: 100%; } .donation-progress { grid-column: span 1; } .hero-meta { margin-top: 100px; } .wrapper { width: 90%; } .hero-image { display: none; } .hero .text { width: 100%; } .misc { display: none; } .column-2, .hero { grid-template-columns: 100%; grid-gap: 15px; } .button.primary { padding: 8px 27px; } .button.secondary.icon-btn { width: 41px; height: 41px; } .button.icon-btn svg { min-width: 30px; width: 30px; min-height: 30px; height: 30px; } section.progress { margin-top: 100px; } section.progress .right:before { content: none; } section.progress .right { padding: 50px 20px; border-radius: 10px; } .sect .text { width: 100%; } .question-and-answer summary { font-size: 1.1rem; } section.showcase { margin-top: 0; } section.showcase .grid { grid-template-columns: 1fr; grid-template-rows: repeat(3, 1fr); } section.team, section.team-helpers { margin-top: 100px; } .team .team-top .text { width: 100%; } section.team-helpers .sect-top { text-align: center; } section.team-helpers .sect-top .text { width: 100%; max-width: none; } section.team-helpers .animation-wrapper { transform: none; overflow-x: visible; margin-left: -10vw; /* Fixes the loop being visible */ } section.team-helpers .animation-wrapper::after { background: none; } /* Hides workaround on mobile */ section.team-helpers .animation-wrapper .row-wrapper::before, section.team-helpers .animation-wrapper .row-wrapper::after { content: none; } section.update-signup { margin-top: 0; padding-top: 90px; padding-bottom: 90px; } .text { width: 100%; } } @media screen and (max-width: 580px) { .sect .title { font-size: 2rem; } h1.dot:not([data-title-suffix]):after, h2.dot:not([data-title-suffix]):after { width: 0.5rem; height: 0.5rem; } .hero .title { font-size: 2.5rem; } .hero .subtitle { font-size: 1.5rem; } section.showcase { padding: 160px 0; } section.showcase p.text { margin-bottom: 82px; } section.showcase .grid .item { padding: 24px 24px; } .team .team-top { text-align: left; } .team-cards .card { grid-template-columns: 60px 1fr; width: calc(95vw - 36px); margin-left: -1vw; margin-right: -1vw; padding: 18px; max-width: none; } section.team-helpers .team-helpers-cards { grid-gap: 12px; margin-right: 12px; } section.team-helpers .animation-wrapper .helper-card { padding: 7px 18px; } section.team-helpers .animation-wrapper .row.second { margin-top: 12px; } section.update-signup .floating-serverjoin { width: calc(100% - 36px); grid-template-columns: 1fr; grid-template-rows: repeat(2, fit-content(100%)); } section.update-signup .floating-serverjoin > * { margin: auto !important; } } @media screen and (min-width: 2256px) { .purple-circle { display: none; } }