@use "fonts"; @use "colors/light" as light; @use "colors/dark" as dark; * { -webkit-tap-highlight-color: transparent; // fuck you (L) } html, body { overflow-x: hidden; } body { margin: 0; background: light.$pageBG; color: light.$pageFG; @media (prefers-color-scheme: dark) { background: dark.$pageBG; color: dark.$pageFG; } } main { transition: 0.24s; &.buffering { transform: scale(1.01); transition: 0.16s; opacity: 0.4; pointer-events: none; user-select: none; } &.transition { transform: scale(0.96); transition: 0.16s; opacity: 0; } } .container { max-width: 960px; width: 100%; margin: 0 auto; padding: 24px; box-sizing: border-box; } ul, ol { list-style-position: inside; } p { line-height: 1.6; opacity: 0.88; } img { max-width: 100%; } .cards { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; @media (max-width: 600px) { gap: 12px; } } .card { position: relative; display: flex; flex-direction: column; box-sizing: border-box; max-width: 100%; height: 150px; text-decoration: none; border-radius: 4px; padding: 8px 12px; cursor: pointer; overflow: hidden; outline: 1px solid light.$cardNormalBorder; background: light.$cardNormalBG; color: light.$cardNormalFG; @media (prefers-color-scheme: dark) { outline-color: dark.$cardNormalBorder; background: dark.$cardNormalBG; color: dark.$cardNormalFG; } transition: 0.24s; &:hover { outline-width: 2px; outline-color: light.$cardActiveBorder; background: light.$cardActiveBG; color: light.$cardActiveFG; @media (prefers-color-scheme: dark) { outline-color: dark.$cardActiveBorder; background: dark.$cardActiveBG; color: dark.$cardActiveFG; } transition: 0.08s; .icon { transition: 0.48s; transform: scale(1.2); } } width: calc(100% / 3 - 6px); @media (max-width: 800px) { width: calc(50% - 4px); } @media (max-width: 600px) { border-radius: 8px; width: 100%; } h1 { margin: 0; font-size: 1.2em; font-weight: 400; } .icon { position: absolute; top: 0; right: 0; height: 100%; aspect-ratio: 1/1; object-fit: cover; mask-image: linear-gradient(to right, transparent, rgba(red, 0.3)); @media (prefers-color-scheme: dark) { mask-image: linear-gradient(to right, transparent, rgba(red, 0.1)); } transition: 0.64s; } p { margin: 8px 0; } } a { color: light.$linkColor; @media (prefers-color-scheme: dark) { color: dark.$linkColor; } &:visited { opacity: 0.9; } } .pageHero { background-image: linear-gradient(rgba(light.$headerOverlay, 0.9), rgba(light.$headerOverlay, 0.9)), // white overlay. yeah that's a bit of an ugly hack? url('/img/Panorama-Lens-Blur.png'); @media (prefers-color-scheme: dark) { background-image: linear-gradient(rgba(dark.$headerOverlay, 0.9), rgba(dark.$headerOverlay, 0.9)), url('/img/Panorama-Lens-Blur.png'); } background-position: center; background-size: cover; height: 220px; > .container { height: 100%; display: flex; flex-direction: row; align-items: center; justify-content: space-between; @media (max-width: 600px) { justify-content: center; } > div { display: flex; flex-direction: column; gap: 12px; &.Branding { align-items: flex-start; @media (max-width: 600px) { align-items: center; } @media (prefers-color-scheme: dark) { img { filter: invert(1) } } span { font-size: 24px; opacity: 0.75; } } &.Server-Information { @media (max-width: 600px) { display: none; } align-items: center; gap: 4px; input { text-align: center; font-size: 24px; &:not(:hover, :focus) { color: inherit; border-color: transparent; background: transparent; } } } } } } .navToggle { @media (min-width: 601px) { display: none; } z-index: 10; position: fixed; top: 8px; right: 8px; font-size: 18px; background: light.$btnNormalBG; color: light.$btnNormalFG; @media (prefers-color-scheme: dark) { background: dark.$btnNormalBG; color: dark.$btnNormalFG; } padding: 8px 24px; border-radius: 32px; font-weight: bold; user-select: none; cursor: pointer; } .pageNav { width: 100%; border: solid light.$navBorder; border-width: 0 0 1px 0; background: light.$navBG; @media (prefers-color-scheme: dark) { border-color: dark.$navBorder; background: dark.$navBG; } > .container { padding: 16px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; @media (max-width: 600px) { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9; backdrop-filter: blur(15px); background: rgba(light.$navBG, 0.86); @media (prefers-color-scheme: dark) { background: rgba(dark.$navBG, 0.9); } justify-content: center; flex-direction: column; gap: 64px; &, > * { transition: 0.16s } &:not(.opened) { opacity: 0; pointer-events: none; //&, > * { transition: 0.12s } > * { transform: translateX(32px); } } } > div { margin: 0; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px; @media (max-width: 600px) { width: 100%; flex-direction: column; } > a { font-family: Outfit; user-select: none; font-size: 16px; box-sizing: border-box; color: light.$navLinkNormalColor; @media (prefers-color-scheme: dark) { color: dark.$navLinkNormalColor; } @media (max-width: 600px) { font-size: 28px; outline: none; padding: 8px 32px; text-align: end; &.active::before { content: "➤"; // i know.. } } text-decoration: none; padding: 6px 20px; border-radius: 32px; outline: solid transparent 2px; transition: 0.24s; &.active { pointer-events: none; } &:hover, &.active { //background: rgba(15, 23, 42, 0.1); color: light.$navLinkActiveColor; outline-color: light.$navLinkOutlineColor; @media (prefers-color-scheme: dark) { color: dark.$navLinkActiveColor; outline-color: dark.$navLinkOutlineColor; } transition: 0.08s; } @media (min-width: 601px) { &.buttonPrimary { background: light.$btnNormalBG; color: light.$btnNormalFG; @media (prefers-color-scheme: dark) { background: dark.$btnNormalBG; color: dark.$btnNormalFG; } font-weight: 700 !important; } } } } } } .pageContent { // } .pageFooter { opacity: 0.8; > .SNS-Links { display: flex; flex-wrap: wrap; gap: 16px; > a { display: flex; gap: 8px; font-size: 18px; color: inherit; img { width: 1em; @media (prefers-color-scheme: dark) { filter: invert(1); } } &:not(:hover, :focus) { text-decoration: none; } } } }