/* colors */ :root { --base: #1e1e2e; --text: #cdd6f4; --crust: #11111b; --surface0: #313244; --subtext0: #a6adc8; --subtext1: #bac2de; --pink: #f5c2e7; --rosewater: #f5e0dc; --blue: #89b4fa; --mauve: #cba6f7; } @media (prefers-color-scheme: light) { :root { --base: #eff1f5; --text: #4c4f69; --crust: #dce0e8; --surface0: #ccd0da; --subtext0: #6c6f85; --subtext1: #5c5f77; --pink: #ea76cb; --rosewater: #dc8a78; --blue: #1e66f5; --mauve: #8839ef; } } :root, code { font-family: "Hack", "Hack Nerd Font", "JetBrains Mono", "JetBrainsMono Nerd Font", monospace, sans-serif; } :root { scrollbar-width: none; background-color: var(--base); color: var(--text); accent-color: var(--pink); } body { margin: 0; padding: 0; background-color: var(--base); } main { padding: 1em; background-color: var(--base); } body > main > h1:first-child { margin-top: 0; } a { color: var(--pink); } a:hover { color: var(--rosewater); } a:active { color: var(--blue); } a:visited { color: var(--mauve); } progress { width: 100%; border: 2px solid; border-color: var(--text); background-color: var(--base); color: var(--pink); accent-color: var(--pink); } ::-moz-progress-bar, ::-webkit-progress-value { background-color: var(--pink) !important; } ::-webkit-progress-bar { background-color: var(--base); width: 100%; } fieldset { border-color: var(--text); } footer { text-align: end; font-size: small; opacity: 50%; } code { padding: 0.15em 0.3em; overflow-wrap: break-word; word-break: break-all; white-space: pre-wrap; background-color: var(--surface0); color: var(--subtext1); } pre > code { border: 2px solid var(--surface0); padding: 1.25em 1.5em; display: block; background-color: var(--base); color: var(--text); } legend { font-weight: 900; } .projects-list li details[open] { margin: 1em auto; } summary:hover, summary:active, details[open] > summary { font-weight: bold; } summary::after { content: " (click to expand)"; opacity: 50%; font-size: smaller; font-weight: lighter; } details[open] > summary::after { content: " (click to collapse)"; } div.buttons > a { font-size: 0; & > img { image-rendering: crisp-edges; image-rendering: pixelated; object-fit: contain; width: 88px; height: 31px; } } table { word-break: break-word; } td:first-child { font-weight: bold; word-break: keep-all; vertical-align: top; } td:nth-child(2) { padding-left: 0.5em; word-break: break-all; } @media (min-width: 956px) { :root { --target-ratio: 0.7; /* 669px - 1344x */ --width: min(100% * var(--target-ratio), 1920px * var(--target-ratio)); --padding: 4em; --padded-width: calc(var(--width) - var(--padding) * 2); } body { padding: 4em 0; min-height: calc(100vh - 8em); background: var(--crust); background: linear-gradient( 90deg, var(--base) 0%, var(--crust) calc((100% - var(--width)) / 2), var(--crust) calc(50% + var(--width) / 2), var(--base) 100% ); } body > * { margin: auto; padding: var(--padding); width: var(--padded-width); } body > footer { padding: initial; width: var(--width); } } /* WARNING: freaky mode */ :root:has(#freaky:checked)::after { content: ""; position: fixed; top: 0; left: 0; margin: 0; width: 100vw; height: 100vh; background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22600px%22%20height%3D%22200px%22%20%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%3ClinearGradient%20id%3D%22lgrad%22%20x1%3D%2285%25%22%20y1%3D%220%25%22%20x2%3D%2215%25%22%20y2%3D%22100%25%22%20%3E%0A%0A%20%20%20%20%20%20%20%20%20%20%3Cstop%20offset%3D%220%25%22%20style%3D%22stop-color%3Argb(154%2C65%2C40)%3Bstop-opacity%3A1.00%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cstop%20offset%3D%2250%25%22%20style%3D%22stop-color%3Argb(116%2C36%2C94)%3Bstop-opacity%3A1.00%22%20%2F%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cstop%20offset%3D%22100%25%22%20style%3D%22stop-color%3Argb(59%2C56%2C132)%3Bstop-opacity%3A1.00%22%20%2F%3E%0A%0A%20%20%20%20%3C%2FlinearGradient%3E%0A%20%20%3C%2Fdefs%3E%0A%20%20%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22url(%23lgrad)%22%2F%3E%0A%3C%2Fsvg%3E%0A"); background-repeat: no-repeat; background-attachment: fixed; background-size: 100% 100%; opacity: 0.6; pointer-events: none; }