@font-face{font-family:"Inter";src:url("/assets/InterVariable-884c49a1.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Inter";src:url("/assets/InterVariable-Italic-0aa7a4b3.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}:root{--font-family-sans: 'Inter', sans-serif;--font-family-serif: 'Playfair Display', serif;--color-dark-gray: #1C1F25;--color-darker-gray: #222222;--color-light-gray: #CCCCCC;--color-lighter-gray: #DDDDDD;--color-white: #FFFFFF;--color-alt-dark: #444444;--color-alt-light: #CCCCCC;--color-orange: #BF5024;--color-green: #2A7A5E;--color-yellow: #CBA84D;--color-red: #A63038;--color-light-blue: #84ACCE;--color-black: #021526;--color-background: var(--color-light-gray);--color-text-muted: #4D4D4D;--color-icon: var(--color-dark-gray);--color-border: var(--color-dark-gray);--color-focus: var(--color-dark-gray);--color-blockquote-background: var(--color-lighter-gray)}@media(prefers-color-scheme: dark){:root{--color-background: var(--color-darker-gray);--color-text-muted: #AAAAAA;--color-icon: var(--color-light-gray);--color-border: var(--color-light-gray);--color-focus: var(--color-light-gray);--color-blockquote-background: var(--color-darker-gray)}}body{margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.skip-link{position:absolute;top:0;left:0;z-index:100;padding:.75em 1.5em;background-color:var(--color-background);transform:translateY(-100%)}.skip-link:focus{transform:translateY(0)}.icon{display:inline-block;width:1em;height:1em;vertical-align:-0.125em}.button{display:inline-block;padding:1em 2em;font-family:var(--font-family-sans);font-size:1rem;line-height:normal;text-align:center;text-decoration:none;background-color:var(--color-green);border:1px solid var(--color-darker-gray);cursor:pointer}.button,.button:link,.button:visited{color:var(--color-white)}.button:hover{filter:brightness(0.9)}.button--secondary{background-color:var(--color-orange)}.icon-button{display:inline-block;padding:.5em;font:inherit;line-height:0;background:none;border:none;cursor:pointer}.icon-button,.icon-button:link,.icon-button:visited{color:inherit}.icon-button:hover,.icon-button:focus-visible{color:var(--color-green)}.icon-button .icon{width:1.1rem;height:1.1rem}.icon-button--danger:hover,.icon-button--danger:focus-visible{color:var(--color-red)}.flash{position:fixed;top:0;left:0;right:0;z-index:1000;width:fit-content;max-width:calc(100% - 2rem);box-sizing:border-box;margin:0 auto;padding:.75em 1.5em;font-size:1rem;font-weight:600;line-height:1.5;text-align:center;border:1px solid var(--color-darker-gray);border-top:none;animation:flash-in .3s ease-out}.flash--success{color:var(--color-white);background-color:var(--color-green)}.flash--warning{color:var(--color-dark-gray);background-color:var(--color-yellow)}.flash--error{color:var(--color-white);background-color:var(--color-red)}.flash--leaving{animation:flash-out .3s ease-in forwards}@keyframes flash-in{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes flash-out{from{transform:translateY(0)}to{transform:translateY(-100%)}}@media(prefers-reduced-motion: reduce){.flash,.flash--leaving{animation:none}}.navbar{padding:.25em 0;display:flex;flex-wrap:wrap;align-items:center;flex-flow:row nowrap;justify-content:flex-start;width:100%}.navbar--home{position:fixed}@media(max-width: 1000px){.navbar{position:relative}}.navbar__brand{display:flex;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap;color:var(--color-white);text-decoration:none}.pixel-danny{width:20px;height:30px;margin-right:1rem;margin-left:.2rem}@media(min-width: 60rem){.pixel-danny{margin-left:.5rem}}.name{font-family:var(--font-family-sans);font-size:.9em;font-weight:600;letter-spacing:-0.05em;margin-top:.3em}@media(min-width: 60rem){.name{font-size:1.05em;margin-top:.1em}}@media(max-width: 40rem){.name{display:none}}.navbar__nav{min-width:0}.navbar__nav ul{display:flex;flex-wrap:wrap;row-gap:.25em;list-style-type:none;padding:0}@media(min-width: 60rem){.navbar__nav ul{font-size:1em}}.navbar__nav__item{margin-right:1em}.navbar__tagline{text-align:right;font-size:.9em;margin-left:auto;display:none}@media(min-width: 60rem){.navbar__tagline{display:block}}.intro{background:var(--color-alt-dark);padding:10px 20px;margin-top:24px;margin-bottom:3em}.intro__headline{margin:0}.intro__text{font-size:18px;line-height:28px}.posts ul{margin-top:2em;list-style-type:none;padding:0}.posts ul li{font-size:1.6em;margin-top:1em;font-family:var(--font-family-sans);font-weight:700;letter-spacing:-0.05em}.posts ul li a{text-decoration:none}.posts ul li em{font-weight:200;font-size:.6em;letter-spacing:-0.01em;display:block;margin-top:.2em}blockquote{width:65%;margin:3em auto;padding:1em 1em;background-color:var(--color-blockquote-background)}blockquote p{margin:0;font-size:1.1em;line-height:1.6em}blockquote footer{margin:.5em 0 0 0}blockquote footer cite{display:block;text-align:right;font-size:.9em}@media(min-width: 576px){blockquote{width:80%}}.code-block{margin:2em 0;position:relative}.code-block pre{width:90%;margin-left:auto;margin-right:auto;overflow-x:scroll !important;background:#2d2d2d}.code-block pre code{width:auto;padding:1em}.code-block pre code.hljs{overflow-x:visible}.code-block .code-caption{position:absolute;bottom:3px;right:6%;display:block;font-family:"Anonymous Pro",monospace;font-size:.8em;color:var(--color-light-gray)}.code-block .with-caption{padding-bottom:2em}.image-block{text-align:center;margin:3em 0}.image-block img{width:80%}article.cheatsheet code,article.cheatsheet pre{background:#000;color:#fff}article.cheatsheet pre{white-space:pre-wrap;overflow-wrap:anywhere}article.cheatsheet h3,article.cheatsheet h4{font-weight:bold;letter-spacing:normal}article.cheatsheet h3{font-size:1em;margin:1.33em 0}article.cheatsheet h4{font-size:.83em;margin:1.67em 0}.flashcards .flashcards__actions{text-align:center}.flashcards h2{margin-top:1em;margin-bottom:.5em}.flashcards ul li{margin-top:.4em}.flashcard__header{text-align:center}.flashcard__prompt{margin-top:.1em;margin-bottom:.1em}.flashcard__section{text-align:center;margin-top:2em;margin-bottom:1em;padding:.3em 1.5em;font-weight:400;font-size:1em;line-height:normal;background-color:var(--color-light-gray);color:var(--color-darker-gray);display:inline-block}.flashcard__actions{text-align:center;margin-top:3em}.flashcard__response{display:none}.contact{text-align:center}.contact p{margin:1rem}.contact__form{display:flex;flex-direction:column;gap:1rem;max-width:32rem;margin:2rem auto;text-align:left}.contact__label{margin-bottom:-0.5rem;font-weight:600}.contact__field{padding:.75em;font-family:var(--font-family-sans);font-size:1rem;border:1px solid var(--color-border)}.contact__website{position:absolute;left:-10000px}.contact__submit{align-self:center}.auth{max-width:24rem;margin:2rem auto 4rem}.auth__form{display:flex;flex-direction:column;gap:1rem;margin:2rem 0}.auth__label{margin-bottom:-0.5rem;font-weight:600}.auth__field{box-sizing:border-box;width:100%;padding:.75em;font-family:var(--font-family-sans);font-size:1rem;border:1px solid var(--color-border)}.auth__submit{align-self:center}.listicle{list-style:none;padding-left:0}.listicle li{margin-bottom:1.5rem}.listicle h2{margin:0}.listicle h3{margin:0;font-size:var(--font-size-m)}.listicle p{margin:.25rem 0 0}.resume-link{display:flex;align-items:center;margin:1rem 0 0 0;text-align:right;width:80%;justify-content:flex-end}.resume-link svg{margin-right:.25rem;height:1.25rem;width:1.25rem;fill:var(--color-icon)}@media(max-width: 1000px){.resume-link{width:90%}}.social-links{margin:3rem 0 0 0;text-align:center}.social-links a{margin:0 .25rem}.social-links a svg{height:3rem;width:3rem;fill:var(--color-icon)}.home .social-links{width:80%}.contact .social-links{width:100%}@media(max-width: 1000px){.home .social-links{width:100%}}.tags{margin:0 0 1.25rem 0}.tag{padding:.25rem .5rem;background-color:var(--color-lighter-gray);color:var(--color-darker-gray);border-radius:.35rem;font-size:.8rem;letter-spacing:.025rem}.site-footer{text-align:center;padding:10px 0;margin-top:4em;clear:both}.project-section{margin-top:2rem}.project-headline{text-align:center;font-size:3em;font-weight:800;font-family:var(--font-family-sans);letter-spacing:-0.02em;margin-top:.5em;margin-bottom:.5em}@media(max-width: 1000px){.project-headline{font-size:2em}}.project-image{width:100%}@media(max-width: 768px){.project-image{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}}.project-list-item{font-size:1.2em;margin-top:.75em}body{font-family:var(--font-family-sans);min-height:100%;overflow-wrap:break-word}h1,h2,h3{font-family:var(--font-family-sans);font-weight:900;letter-spacing:-0.02em;hyphens:auto}h1 code,h2 code,h3 code{color:var(--color-light-gray)}h1{text-align:center;font-size:3em}h2{font-weight:600;margin-top:2em;margin-bottom:1em;padding:10px 0 3px 0}h3{margin-top:2em;font-size:1.5em}p{margin-top:1em;font-size:1.2em;line-height:1.9em}p code{padding:3px 5px;margin:0px 2px}p a{text-decoration:underline}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}code{font-family:"Anonymous Pro",monospace;letter-spacing:-0.05em}pre code{font-size:1.1em;width:90%;margin-left:auto;margin-right:auto}article ul li{font-size:1.1em;margin-top:.8em}@media(min-width: 576px){h3{font-weight:600;font-size:1.3em}}@media(prefers-color-scheme: dark){.prefers-dark-scheme{background:var(--color-darker-gray);color:var(--color-light-gray)}.prefers-dark-scheme a{color:var(--color-light-gray)}.prefers-dark-scheme h1 code{color:var(--color-light-gray)}.prefers-dark-scheme p code{background-color:var(--color-alt-dark);color:var(--color-light-gray)}.prefers-dark-scheme table{color:var(--color-light-gray)}}@media(prefers-color-scheme: light){.prefers-light-scheme{background:var(--color-light-gray);color:var(--color-dark-gray)}.prefers-light-scheme a{color:var(--color-dark-gray)}.prefers-light-scheme h1 code{color:var(--color-dark-gray)}.prefers-light-scheme p code{background-color:var(--color-alt-dark);color:var(--color-light-gray)}.prefers-light-scheme table{color:var(--color-dark-gray)}}.container{width:90%;max-width:1100px;margin:0 auto}@media(max-width: 1000px){.container--main{width:90%;margin:0 auto}.container--home{width:100%}}.home{display:flex;width:100%;height:100vh}.home__panel{width:50%}.home__panel--left{box-sizing:border-box;overflow:hidden;position:fixed;width:550px;margin:8rem 0 0 0;max-height:calc(100vh - 8rem);overflow-y:auto}.home__name{text-align:left;font-size:2.8rem;font-weight:700;padding:0;margin:0 0 5px 0}.home__role{margin:5px 0 0 0;padding:0;font-size:1.1rem;font-weight:400;line-height:normal;letter-spacing:-0.02em}.home__story{font-size:1rem;color:var(--color-text-muted);width:80%;margin:3rem 0 0 0}.home__panel--right{box-sizing:border-box;overflow-y:auto;flex-grow:1;margin:2.5rem 0 0 550px;scrollbar-width:none;-ms-overflow-style:none;padding:20px}.home__recents__title{margin:0}.recent{margin:4rem 0 0 0;transition:transform .1s ease-in-out}.recent img{width:100%}.recent__writing a{font-size:2rem;text-decoration:none}.recent__writing a:hover{text-decoration:underline}.recent__writing em{display:block;text-align:right;margin:1rem 0 0 0}.recent__writing p{font-size:1rem;color:var(--color-text-muted)}.recent:hover,.recent:focus-within{transform:scale(1.0125)}.recent__text{margin:0;text-align:center}.recent__image{width:100%}@media(max-width: 1000px){.home{flex-direction:column;height:auto}.home__panel{margin:0;padding:0}.home__panel--left{position:relative;width:90%;margin:0 auto;max-height:none}.home__name{margin:2rem 0 0 0}.home__story{width:90%}.home__panel--right{width:100%}.recent__writing{width:90%;margin-left:auto;margin-right:auto}.recent__photography .tags,.recent__book .tags,.recent__project .tags{width:90%;margin-left:auto;margin-right:auto}.recent__image{width:100%}.recent__text{text-align:center}}.admin{display:grid;grid-template-columns:15rem minmax(0, 1fr);gap:3rem;margin:2rem 0 4rem}.admin h1{text-align:left;font-size:2.25em;margin:0 0 1.5rem}.admin__content h2{margin:2rem 0 .5rem;padding:0}.admin-nav{align-self:start;position:sticky;top:1rem;padding-right:1.5rem;border-right:1px solid var(--color-border)}.admin-nav__heading{margin:1.75rem 0 .5rem;padding:0;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.admin-nav__list{list-style:none;margin:0;padding:0}.admin-nav__link{display:block;padding:.35rem .5rem;margin-left:calc(-0.5rem - 3px);text-decoration:none;border-left:3px solid rgba(0,0,0,0)}.admin-nav__link:hover{text-decoration:underline}.admin-nav__link[aria-current=page]{font-weight:700;border-left-color:var(--color-green)}.admin-nav__sign-out{margin-top:2rem;text-align:center}.admin-list{padding-left:1.25rem}.admin-list li{font-size:1.1em;margin-top:.5em}.admin-table__wrapper{position:relative;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:.75rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.admin-table th{font-weight:700}.admin-table__nowrap{white-space:nowrap}.admin-table__actions{display:flex;gap:.25rem;justify-content:flex-end}.admin__back{margin:0 0 1rem;font-size:1rem}.admin-details{margin:0 0 2rem}.admin-details dt{font-weight:700;margin-top:1.25rem}.admin-details dd{margin:.25rem 0 0}.admin-details__body p{margin:0 0 1em;font-size:1.1em;line-height:1.7}@media(max-width: 1000px){.admin{grid-template-columns:minmax(0, 1fr);gap:2rem}.admin-nav{position:static;padding:0 0 1.5rem;border-right:none;border-bottom:1px solid var(--color-border)}}.hljs-comment,.hljs-quote{color:#999}.hljs-variable,.hljs-template-variable,.hljs-tag,.hljs-name,.hljs-selector-id,.hljs-selector-class,.hljs-regexp,.hljs-deletion{color:#f2777a}.hljs-number,.hljs-built_in,.hljs-builtin-name,.hljs-literal,.hljs-type,.hljs-params,.hljs-meta,.hljs-link{color:#f99157}.hljs-attribute{color:#fc6}.hljs-string,.hljs-symbol,.hljs-bullet,.hljs-addition{color:#9c9}.hljs-title,.hljs-section{color:#69c}.hljs-keyword,.hljs-selector-tag{color:#c9c}.hljs{display:block;overflow-x:auto;background:#2d2d2d;color:#ccc;padding:.5em}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}
