html, body { margin: 0; padding: 0; } body { font-family: monospace; font-size: 10pt; color: #ddd; background-color: #111; line-height: 1.4em; display: flex; flex-direction: column; min-height: 100vh; } a { color: yellow; text-decoration: none; } a:hover { text-decoration: underline; } h1, h2, h3 { font-weight: 700; color: #fff; } body > header { width: 50rem; max-width: 96%; margin: 0 auto; padding: 1rem 0; color: #fff; border-bottom: 1px solid #333; } body > header h1 { font-size: 1.5em; margin: 0 0 0.5rem 0; } body > header p { opacity: 0.8; color: #ccc; margin: 0 0 1rem 0; } #main-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.75em; line-height: 1.2; } #main-nav a { color: #ccc; text-decoration: none; font-size: 1.2em; padding: 0.1em 0.2em; transition: color 0.2s ease; position: relative; display: inline-flex; align-items: baseline; } #main-nav a.active-nav-item, #main-nav a.active-nav-item::before, #main-nav a.active-nav-item::after { color: #fff; } #main-nav a::before, #main-nav a::after { color: #666; transition: color 0.2s ease; font-weight: normal; } #main-nav a::before { content: "["; margin-right: 0.4em; } #main-nav a::after { content: "]"; margin-left: 0.4em } #main-nav a:hover, #main-nav a:focus { color: yellow; } #main-nav a:hover::before, #main-nav a:hover::after, #main-nav a:focus::before, #main-nav a:focus::after { color: yellow; } .content-wrapper { display: flex; width: 50rem; max-width: 96%; margin: 2rem auto; gap: 2rem; flex: 1; } .profile-info { flex: 0 0 180px; text-align: left; } #profile-pic { width: 120px; height: 120px; border-radius: 50%; border: 3px solid #444; margin-bottom: 1rem; display: block; } .profile-info h3 { margin-top: 0; margin-bottom: 0.5rem; font-size: 1.2em; } .profile-info h4 { font-size: 1em; color: #bbb; margin-top: 1.5rem; margin-bottom: 0.75rem; font-weight: normal; border-bottom: 1px solid #333; padding-bottom: 0.25rem; } .profile-info p { font-size: 0.9em; color: #aaa; margin-bottom: 0.75rem; line-height: 1.3; } .profile-info p em { color: #ccc; } .profile-info a { } .profile-info details.contacts summary { font-size: 1em; color: #bbb; font-weight: bold; padding: 0.6em 0.2em 0.6em 0; cursor: pointer; list-style: none; transition: color 0.2s ease, border-color 0.2s ease; border-bottom: 1px solid #333; display: block; } .profile-info details.contacts summary::-webkit-details-marker, .profile-info details.contacts summary::marker { display: none } .profile-info details.contacts summary:focus { outline: none; } .profile-info details.contacts summary:focus-visible { box-shadow: 0 0 0 2px #111, 0 0 0 4px yellow; border-bottom-color: transparent; } .profile-info details.contacts summary::before { content: "[+] "; color: #888; font-weight: normal; display: inline; margin-left: 0.2em; transition: color 0.2s ease; } .profile-info details.contacts summary:hover, .profile-info details.contacts summary:hover::before { color: #fff; } .profile-info details.contacts[open] > summary { color: yellow; border-bottom-color: yellow; } .profile-info details.contacts[open] > summary:focus-visible { border-bottom-color: transparent; } .profile-info details.contacts[open] > summary::before { content: "[-] "; color: yellow; } .profile-info details.contacts[open] .contact-details { margin: 0; padding: 0.75em 0.5em 0.5em calc(0.2em + 3ch + 0.2em); font-size: 0.9em; background-color: #161616; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } .contact-details { margin: 0; padding: 0; font-size: 0.9em; } .contact-details dt { color: #aaa; font-weight: bold; margin-bottom: 0.1em; margin-top: 0.5em; } .contact-details dt:first-of-type { margin-top: 0; } .contact-details dd { margin-left: 0; margin-bottom: 0.5em; color: #ddd; } .contact-details dd a { color: yellow; } .contact-details dd a:hover { text-decoration: underline; } .main-content { flex: 1; min-width: 0; } .main-content section { margin-bottom: 2.5rem; padding: 1.5rem; background-color: #161616; border: 1px solid #282828; border-radius: 4px; } .main-content section:last-child { margin-bottom: 0; } .main-content h2 { font-size: 1.3em; margin-top: 0; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #444; } .prompt { color: #8AE234; margin-right: 0.5em; user-select: none; } .main-content p, .main-content ul { margin-bottom: 1em; } .main-content ul { list-style-type: none; padding-left: 0; } .main-content ul li { padding-left: 1.75em; position: relative; margin-bottom: 0.5em; } .main-content ul li::before { content: 'ยป'; color: yellow; position: absolute; left: 0.5em; font-weight: bold; } .project-item { margin-bottom: 1.5rem; padding-bottom: 1.5rem; border-bottom: 1px dashed #333; } .project-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .project-item h3 { font-size: 1.1em; color: #eee; margin-top: 0; margin-bottom: 0.5rem; } .project-item p { margin-bottom: 0.5rem; color: #ccc; } .project-item a { font-weight: bold; } body > footer { width: 50rem; max-width: 96%; margin: 0 auto; padding: 1.5rem 0; color: #aaa; text-align: center; border-top: 1px solid #333; margin-top: auto; } body > footer img { margin: 0 5px; vertical-align: middle; border-radius: 4px; } body > footer p { margin-top: 0.75rem; font-size: 0.9em; } @media (max-width: 768px) { body > header, .content-wrapper, body > footer { width: 90%; } .content-wrapper { flex-direction: column; align-items: center; margin-top: 1.5rem; margin-bottom: 1.5rem; gap: 1.5rem; } .profile-info { flex: 0 0 auto; width: 100%; max-width: 350px; text-align: center; margin-bottom: 1rem; } #profile-pic { margin-left: auto; margin-right: auto; } .profile-info p { text-align: center; } .profile-info a { display: inline-block; padding: 0.2em 0; } .main-content section { padding: 1rem; } .main-content h2 { font-size: 1.2em; } body > header h1 { font-size: 1.3em; } } @media (max-width: 480px) { body { font-size: 9.5pt; } body > header, .content-wrapper, body > footer { width: 95%; } .main-content section { padding: 0.8rem; } #profile-pic { width: 100px; height: 100px; } .main-content ul li { padding-left: 1.5em; } .main-content ul li::before { left: 0.2em; } }