body{background-color:#f5f5f5;padding:0;margin:0;box-sizing:border-box;font-family:Arial,Helvetica,sans-serif}#header{display:flex;align-items:center;width:90vw;margin:30px 5vw 0;font-size:1.25em}#nav{width:100%}#header a:hover{text-decoration:underline}#header a:focus{text-decoration:underline}.list-items{margin-top:30px;padding:0;list-style-type:none;display:flex;flex-wrap:wrap;gap:35px 5px}.list-item{display:inline;padding-right:15px}a{text-decoration:none;color:#000}.dark-mode a{color:#dce3e9}.work-image{width:90vw;object-fit:cover}#heading{font-family:ff-din-paneuropean,Arial,Helvetica,sans-serif;font-weight:500;font-size:28px;line-height:1.1}.list-link{font-family:roboto-mono,Open Sans,Helvetica Neue,monospace;font-weight:400;font-size:16px;border:1.5px solid black;padding:8px 12px;white-space:nowrap}#artworks-container{min-height:100vh;padding-top:10px;width:90vw;margin:0 5vw;display:flex;flex-direction:column}#homepage-container{min-height:100vh;width:90vw;margin:0 5vw;display:flex;flex-direction:column}#homepage-text{font-size:2em;line-height:1.2;color:#2e3440;font-family:farnham-display,Garamond,Cambria,Cochin,Georgia,Times,Times New Roman,serif;font-weight:300}#homepage-face{height:1em;width:1em;object-fit:cover;object-position:center;border-radius:50%;display:inline-block;vertical-align:-.15em;box-shadow:0 1px 4px #00000014}.homepage-link{font-size:1em;color:#3d58e3;font-family:farnham-display,Garamond,Cambria,Cochin,Georgia,Times,Times New Roman,serif;font-weight:500}.homepage-link:hover{text-decoration:underline}.dark-mode #homepage-text{color:#dce3e9}.dark-mode .homepage-link{color:#3ba7ff}.work-container{padding-bottom:30px}.work-title{align-self:flex-start;font-size:13px;border-bottom-width:1px;border-bottom-style:solid;padding-bottom:1px;margin:0}.light-switch{position:absolute;top:5vw;right:5vw;height:20px;width:20px;border-radius:50%;background-color:#f5f5f5;border:1.5px solid black;cursor:pointer;padding:0;box-sizing:border-box}.light-switch:hover{background-color:#2e3440}.light-switch:focus{background-color:#2e3440}.dark-mode{background-color:#2e3440;color:#dce3e9}.dark-mode-nav-links{color:#dce3e9;border:1.5px solid #dce3e9}.dark-mode-light-switch{border-color:#dce3e9;border-style:solid}.dark-mode-light-switch:hover{background-color:#dce3e9}.dark-mode-light-switch:focus{background-color:#dce3e9}.layout{width:90vw;margin:0 15vw 0 5vw;font-family:Arial,Helvetica,sans-serif}.section-title{font-family:roboto-mono,Open Sans,Helvetica Neue,monospace;font-weight:700;color:#878787}.dark-mode .section-title{color:#b4b4b4}#picture-of-me{max-width:100%;height:auto}.contact-intro{font-family:farnham-display,Garamond,Cambria,Cochin,Georgia,Times,Times New Roman,serif;font-weight:300;font-size:1.15em;line-height:1.7;color:#2e3440;margin-bottom:35px}.dark-mode .contact-intro{color:#dce3e9}.contact-links{list-style-type:none;padding:0}.contact-link-item{animation:contact-emerge .5s ease both}.contact-link-item:nth-child(1){animation-delay:.05s}.contact-link-item:nth-child(2){animation-delay:.12s}.contact-link-item:nth-child(3){animation-delay:.19s}.contact-link-item:nth-child(4){animation-delay:.26s}.contact-link-item:nth-child(5){animation-delay:.33s}@keyframes contact-emerge{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.contact-link{font-family:roboto-mono,Open Sans,Helvetica Neue,monospace;font-weight:400;font-size:16px;border:1.5px solid black;padding:10px 14px;display:inline-flex;align-items:center;gap:10px;margin-top:30px;transition:border-color .3s ease}.contact-icon{flex-shrink:0;transition:color .3s ease}.contact-link[data-brand=email]{--brand-color: #d44638}.contact-link[data-brand=github]{--brand-color: #8b5cf6}.contact-link[data-brand=x]{--brand-color: #1d9bf0}.contact-link[data-brand=openprocessing]{--brand-color: #3b82f6}.contact-link[data-brand=instagram]{--brand-color: #e1306c}.contact-link[data-brand=bluesky]{--brand-color: #0085ff}.contact-link:hover,.contact-link:focus{border-color:var(--brand-color)}.contact-link:hover span,.contact-link:focus span{text-decoration:underline;color:var(--brand-color)}.contact-link:hover .contact-icon,.contact-link:focus .contact-icon{color:var(--brand-color)}.contact-link[data-brand=email]:hover .contact-icon{animation:icon-email .5s ease}.contact-link[data-brand=github]:hover .contact-icon{animation:icon-github .5s ease}.contact-link[data-brand=x]:hover .contact-icon{animation:icon-x .4s ease}.contact-link[data-brand=openprocessing]:hover .contact-icon{animation:icon-openprocessing .5s ease}.contact-link[data-brand=instagram]:hover .contact-icon{animation:icon-instagram .4s ease}.contact-link[data-brand=bluesky]:hover .contact-icon{animation:icon-bluesky .5s ease}@keyframes icon-email{0%,to{transform:rotate(0) scale(1)}25%{transform:rotate(-10deg) scale(1.1)}75%{transform:rotate(3deg) scale(1.05)}}@keyframes icon-github{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes icon-x{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes icon-openprocessing{0%,to{transform:scaleX(1)}50%{transform:scaleX(1.25)}}@keyframes icon-bluesky{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.1)}}@keyframes icon-instagram{0%,to{transform:scale(1);opacity:1}25%{transform:scale(1.15);opacity:.6}50%{transform:scale(1.05);opacity:1}}.dark-mode-contact-links{color:#dce3e9;border:1.5px solid #dce3e9}.dark-mode-contact-links:hover,.dark-mode-contact-links:focus{border-color:var(--brand-color)}@media (prefers-reduced-motion: reduce){.contact-link-item{animation:none}.contact-link,.contact-icon{transition:none}.contact-link:hover .contact-icon,.contact-link:focus .contact-icon{animation:none}}.about-intro{font-family:farnham-display,Garamond,Cambria,Cochin,Georgia,Times,Times New Roman,serif;font-weight:300;font-size:1.15em;line-height:1.7;color:#2e3440}.dark-mode .about-intro{color:#dce3e9}.skills-columns{display:grid;grid-template-columns:1fr;gap:30px;margin-top:35px;padding-bottom:60px}.skills-heading{font-family:roboto-mono,Open Sans,Helvetica Neue,monospace;font-size:13px;font-weight:400;color:#2e3440;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px}.skills-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}.skills-list li{font-family:roboto-mono,Open Sans,Helvetica Neue,monospace;font-size:13px;font-weight:400;border:1.5px solid #2e3440;padding:6px 10px;white-space:nowrap;transition:background-color .4s ease,color .4s ease,border-color .4s ease;cursor:default}.dark-mode .skills-list li{border-color:#dce3e9;color:#dce3e9}.dark-mode .skills-heading{color:#dce3e9}.skills-list li.skill-lit{background-color:var(--skill-bg);color:var(--skill-text);border-color:var(--skill-bg)}.skills-list li:hover{background-color:var(--skill-bg);color:var(--skill-text);border-color:var(--skill-bg);transition-duration:.15s}@media (prefers-reduced-motion: reduce){.skills-list li{transition:none}}@media screen and (min-width: 768px){#artworks-container{display:grid;grid-template-columns:1fr 1fr 1fr;top:30px;min-height:0;margin:35px 5vw 0;gap:5vw;padding-bottom:80px}#homepage-container{min-height:0;margin:35px 5vw 0;gap:5vw;padding-bottom:80px}#homepage-text{font-size:3em}.work-container{width:100%;height:200px;padding-bottom:10px;position:relative;display:flex;flex-direction:column}.work-image-link,.work-image{width:100%}.layout{margin:35px 5vw 0}.skills-columns{grid-template-columns:1fr 1fr 1fr}#picture-of-me{max-width:65%;height:auto}}@media screen and (min-width: 1150px){#artworks-container{display:grid;grid-template-columns:1fr 1fr 1fr;position:absolute;top:30px;left:max(250px,calc((100vw - 900px)/2));min-height:0;margin:35px 5vw 0;padding-bottom:0;width:900px;gap:20px}#homepage-container{position:absolute;left:max(250px,calc((100vw - 900px)/2));min-height:0;margin:35px 5vw 0;padding-bottom:0;width:1050px;gap:20px}#header{position:fixed;top:35px;width:220px;flex-direction:column;height:80vh;margin:35px 5vw 0}.light-switch{position:fixed;top:auto;left:5vw;bottom:5vw;right:auto}#nav{height:300px}#heading{font-size:30px;padding-bottom:50px}.list-items{padding-top:30px;flex-direction:column;gap:20px 10px}.list-item{padding-top:20px;font-size:18px}.work-image{width:100%}.work-container{width:80%;padding-bottom:30px}.layout{position:absolute;top:60px;left:max(220px,calc((100vw - 900px)/2));width:40vw;min-height:0;margin:0 45vw 0 5vw}.about-layout{width:900px;display:flex;gap:40px}.about-main{flex:1;min-width:0}.about-layout .skills-columns{grid-template-columns:1fr;flex-shrink:0;width:280px;margin-top:0;padding-top:66px}.about-layout #picture-of-me{max-width:100%}.contact-intro{margin-top:50px}.contact-links{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}}
