/* Default color schemes */ :root { --bg: #fff; --fg: #000; --font-size: 18px; --link: #00f; --link-visited: #519; } /* Dark mode */ @media (prefers-color-scheme: dark) { :root { --bg: #334; --fg: #fff; --font-size: 18px; --link: #0bf; --link-visited: #b4d; } } /* Other themes */ .dark { --bg: #334; --fg: #fff; --link: #0bf; --link-visited: #b4d; } .h4x0r { --bg: #000; --fg: #0f0; --link: #0ff; --link-visited: #f0f; } .light { --bg: #fff; --fg: #000; --link: #00f; --link-visited: #519; } /* Apply themes */ * { font-family: monospace; } body, pre { background-color: var(--bg); color: var(--fg); font-size: var(--font-size); } a { color: var(--link); } a:visited { color: var(--link-visited); } dt { position: relative; } /* ASCII aesthetics */ hr { border: none; } hr::after { content: "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; } input[type=checkbox], input[type=radio] { display: none; } label::before { background-color: var(--bg); color: var(--fg); font-size: var(--font-size); padding: 0ch 1ch; white-space: nowrap; } input[type=checkbox] + label::before { content: "[ ]"; } input[type=checkbox]:checked + label::before { content: "[x]"; } input[type=radio] + label::before { content: "( )"; } input[type=radio]:checked + label::before { content: "(o)"; } header, section { max-width: 80ch; min-width: 80ch; width: 80ch; } ul#preferences { padding-inline-start: 0px; } /* ASCII aesthetics intensifies */ body.ascii h1 { position: relative; } body.ascii h1::before, body.ascii dt::before { font-size: var(--font-size); position: absolute; right: 0ch; white-space: pre; } body.ascii header h1::before { content: "\ ___ ___ ___\A\ / | / | / - \\\A\ / /] | / /] | / __ \\\A\ /_____/ /_____/ /_____/\A"; top: calc(-1*var(--font-size)); } body.ascii #about h1::before { content: "\ ╔═╗┌┐ ┌─┐┬ ┬┌┬┐\A\ ╠═╣├┴┐│ ││ │ │\A\ ╩ ╩└─┘└─┘└─┘ ┴\A"; line-height: 1; top: calc(-1*var(--font-size)); } body.ascii #bash h1::before { content: "\ ____ ____ ____ ____\A\ ||b |||a |||s |||h ||\A\ ||__|||__|||__|||__||\A\ |/__\\|/__\\|/__\\|/__\\|\A"; top: calc(-2*var(--font-size)); } body.ascii #readings h1::before { content: '\ ooooooooo. .o8 o8o\A\ `888 `Y88. "888 `"`\A\ 888 .d88` .ooooo. .oooo. .oooo888 oooo ooo. .oo. .oooooooo .oooo.o\A\ 888ooo88P` d88` `88b `P )88b d88` `888 `888 `888P"Y88b 888` `88b d88( "8\A\ 888`88b. 888ooo888 .oP"888 888 888 888 888 888 888 888 `"Y88b.\A\ 888 `88b. 888 .o d8( 888 888 888 888 888 888 `88bod8P` o. )88b\A\ o888o o888o `Y8bod8P` `Y888""8o `Y8bod88P" o888o o888o o888o `8oooooo. 8""888P`\A\ d" YD\A\ "Y88888P\A'; transform: translateX(20ch) translateY(calc(-3*var(--font-size))) scale(.5); } body.ascii #projects h1::before { content: '\ [H_] [He]\A\ [Li][Be] [B_][C_][N_][O_][F_][Ne]\A\ [Na][Mg] [Al][Si][P_][S_][Cl][Ar]\A\ [K_][Ca] [Sc][Ti][V_][Cr][Mn][Fe][Co][Ni][Cu][Zn][Ga][Ge][As][Se][Br][Kr]\A\ [Rb][Sr] [Y_][Zr][Nb][Mo][Tc][Ru][Rh][Pd][Ag][Cd][In][Sn][Sb][Te][I_][Xe]\A\ [Cs][Ba][La][Ce][Pr][Nd][Pm][Sm][Eu][Gd][Tb][Dy][Ho][Er][Tm][Yb][Lu][Hf][Ta][W_][Re][Os][Ir][Pt][Au][Hg][Tl][Pb][Bi][Po][At][Rn]\A\ [Fr][Ra][Ac][Th][Pa][U_][Np][Pu][Am][Cm][Bk][Cf][Es][Fm][Md][No][Lr][Rf][Db][Sg][Bh][Hs][Mt][Ds][Rg][Cn][Nh][Fl][Mc][Lv][Ts][Og]'; transform: translateX(32ch) translateY(calc(-3.5*var(--font-size))) scale(.5); } body.ascii dt#lambdabot::before { content: '\ _____ _____\A\ \\ \\ \\ \\\A\ \\ \\ \\ \\\A\ \\ \\ \\ \\\A\ \\ \\ \\ \\ \\-----------|\A\ \\ \\ \\ \\ \\ |\A\ \\ \\ \\ \\ \\---------|\A\ / / / \\\A\ / / / \\ \\-------|\A\ / / / ^ \\ \\ |\A\ / / / / \\ \\ \\ ----|\A\ / / / / \\ \\\A\ /____/ /____/ \____\\'; display: block; transform: translateX(11ch) translateY(calc(-5*var(--font-size))) scale(calc(1/3)); } #lambdabot + dd { width: 65ch; } #readings h1 { margin-bottom: calc(4*var(--font-size)); } #reading-years li { display: inline; }