@font-face{font-family:advocate;src:url(/fonts/advocate_c53_regular.woff)format('woff');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:advocate;src:url(/fonts/advocate_c53_bold.woff)format('woff');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:valkyrie;src:url(/fonts/valkyrie_t4_regular.woff)format('woff');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:valkyrie;src:url(/fonts/valkyrie_t4_italic.woff)format('woff');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:valkyrie;src:url(/fonts/valkyrie_t4_bold.woff)format('woff');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:valkyrie;src:url(/fonts/valkyrie_t4_bold_italic.woff)format('woff');font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:concourse;src:url(/fonts/concourse_t4_regular.woff)format('woff');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:concourse;src:url(/fonts/concourse_t4_bold.woff)format('woff');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:triplicate code;src:url(/fonts/triplicate_t4_code_regular.woff)format('woff');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:triplicate code;src:url(/fonts/triplicate_t4_code_bold.woff)format('woff');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:triplicate code;src:url(/fonts/triplicate_t4_code_italic.woff)format('woff');font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:triplicate code;src:url(/fonts/triplicate_t4_code_bold_italic.woff)format('woff');font-weight:700;font-style:italic;font-display:swap}body{font-family:valkyrie,Georgia,serif}h1{font-family:advocate,concourse,sans-serif;text-transform:uppercase;letter-spacing:.08em;font-weight:400}h2{font-family:concourse,-apple-system,sans-serif;font-weight:400}h3,h4,h5,h6{font-family:valkyrie,Georgia,serif;font-weight:700}.navigation,.navigation a,.navigation span,.pagination{font-family:concourse,-apple-system,sans-serif;font-weight:400}.navigation .navigation-title{font-family:advocate,concourse,sans-serif;text-transform:uppercase;letter-spacing:.08em;font-weight:400}.content .list ul li .title{font-family:valkyrie,Georgia,serif;font-weight:400}code,kbd,samp,pre,.highlight code,.highlight pre{font-family:triplicate code,sfmono-regular,Consolas,monospace}body{line-height:1.5}.container{max-width:72rem}a{font-weight:400}h1,h2,h3,h4,h5,h6{margin:3.8rem 0 .2rem}h1{margin:2.5rem 0 .6rem}.content article header h1,.content>h1:first-child{margin-top:0}p{margin:.9rem 0}ul,ol{margin:.9rem 0}a:focus,a:hover{text-decoration:none}.content article a,.content .list ul li a.title{background-color:transparent;border-radius:2px;padding:0 1px;transition:background-color .15s ease}.content article a:hover,.content .list ul li a.title:hover{background-color:rgba(255,220,80,.35);text-decoration:none}body.colorscheme-dark .content article a:hover,body.colorscheme-auto[data-theme=dark] .content article a:hover,body.colorscheme-dark .content .list ul li a.title:hover,body.colorscheme-auto[data-theme=dark] .content .list ul li a.title:hover{background-color:rgba(255,200,60,.2)}.content article h1 a,.content article h2 a,.content article h3 a,.content article h4 a,.content article h5 a,.content article h6 a,.heading-link{background:0 0!important;color:inherit}h2 a,h3 a{color:inherit;text-decoration:none}h2 a:hover,h3 a:hover{color:inherit;text-decoration:none}code{font-size:.85em;font-weight:400;border-radius:3px;padding:.12em .3em;background-color:rgba(0,0,0,5%);color:inherit}body.colorscheme-dark code,body.colorscheme-auto[data-theme=dark] code{background-color:rgba(255,255,255,.1)}pre code{font-size:inherit;padding:0;background-color:transparent;border-radius:0}.content .list ul{margin:2rem 0}.content .list ul li{margin:.15rem 0}.content .list ul li .date{font-family:concourse,-apple-system,sans-serif;font-size:1.5rem;opacity:.55}.content .list ul li a.title{font-weight:400}.centered .about h1{font-family:advocate,concourse,sans-serif;text-transform:uppercase;letter-spacing:.1em;font-weight:400;font-size:2.4rem;margin-top:0;margin-bottom:.8rem}.centered .about h2:empty{display:none}.centered .about ul{margin:1.2rem 0 0}#flow-field{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;cursor:crosshair;display:block;pointer-events:none}main.wrapper{position:relative;z-index:1}.home-hero{flex-direction:column!important;width:100%;flex:1;justify-content:center;pointer-events:none}.home-hero .about{pointer-events:auto}.canvas-hint{position:fixed;bottom:2rem;left:3.6rem;z-index:2;font-family:concourse,-apple-system,sans-serif;font-size:1.6rem;opacity:0;pointer-events:none;white-space:nowrap;animation:canvas-hint-pulse 9s ease-in-out 2s infinite}@keyframes canvas-hint-pulse{0%{opacity:0}10%{opacity:.6}45%{opacity:.6}60%{opacity:0}100%{opacity:0}}.mode-btn{position:fixed;bottom:2rem;left:2rem;z-index:2;opacity:.15;font-size:1.2rem;cursor:pointer;user-select:none;transition:opacity .25s;line-height:1;pointer-events:auto;background:0 0;border:none;padding:0;color:inherit}.mode-btn:hover{opacity:.55}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem;margin:2rem 0}.project-card{position:relative;border-radius:8px;overflow:hidden;background:#f5f5f5;transition:transform .2s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.12)}.project-card a{text-decoration:none;color:inherit;display:block}.project-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.project-card .project-info{padding:1.2rem 1.4rem}.project-card .project-info h3{font-family:valkyrie,Georgia,serif;font-weight:700;margin:0 0 .4rem;font-size:2.2rem}.project-card .project-info p{margin:0;font-size:1.6rem;color:#555;line-height:1.5}.project-card .project-links{padding:0 1.4rem 1.2rem;font-size:1.5rem}.project-card .project-links a{display:inline;color:#1565c0;font-weight:400}.project-card .project-links a:hover{text-decoration:underline}body.colorscheme-dark .project-card,body.colorscheme-auto[data-theme=dark] .project-card{background:#2a2a2a}body.colorscheme-dark .project-card .project-info p,body.colorscheme-auto[data-theme=dark] .project-card .project-info p{color:#aaa}.footer{margin-top:2rem;padding:1rem 0}