@font-face{font-family:Old Standard TT;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/old-standard-tt-400.woff2)format("woff2")}:root{--bg:#fff;--fg:#171717;--muted:#6b6b6b;--line:#d4d4d4;--accent:#16a34a;--serif:"Old Standard TT", "Times New Roman", Times, Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.6}#root{flex-direction:column;min-height:100dvh;display:flex}h1,h2,p,ul{margin:0}ul{padding:0;list-style:none}a,.link-button{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.22em;text-decoration-thickness:1px;transition:text-decoration-color .15s,color .15s}.link-button{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}a:hover,.link-button:hover{text-decoration-color:currentColor}a:focus-visible,.link-button:focus-visible{outline:2px solid var(--fg);outline-offset:3px;border-radius:2px}::selection{background:var(--fg);color:var(--bg)}@media (prefers-reduced-motion:reduce){a,.link-button{transition:none}}.footer{border-top:1px solid var(--fg);letter-spacing:.02em;text-align:center;font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:300;line-height:2.25rem}.footer a{text-decoration-color:#0000}.footer a:hover{text-decoration-color:currentColor}.footer-symbol{color:var(--muted)}@media (width<=36rem){.footer{padding-bottom:4.25rem}}.music{z-index:1;border:1px solid var(--fg);background:var(--bg);width:2.75rem;height:2.75rem;color:var(--fg);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:background-color .15s,border-color .15s,color .15s;display:grid;position:fixed;bottom:1rem;right:1rem}.music[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--bg)}.music[aria-pressed=true]:before,.music[aria-pressed=true]:after{content:"";border:1px solid var(--accent);pointer-events:none;border-radius:50%;animation:2.4s ease-out infinite music-ripple;position:absolute;inset:-1px}.music[aria-pressed=true]:after{animation-delay:1.2s}@keyframes music-ripple{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.music:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.music-bounce{animation:1.2s 1.2s 2 music-bounce}@keyframes music-bounce{0%,40%,80%{animation-timing-function:cubic-bezier(.33,1,.68,1);transform:translateY(0)}20%{animation-timing-function:cubic-bezier(.32,0,.67,0);transform:translateY(-14px)}60%{animation-timing-function:cubic-bezier(.32,0,.67,0);transform:translateY(-6px)}to{transform:translateY(0)}}.now-playing{z-index:1;background:var(--bg);color:var(--muted);letter-spacing:.02em;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;padding:0 .5rem;font-size:.8125rem;font-weight:300;line-height:1.5rem;transition:opacity .4s,visibility .4s;position:fixed;bottom:1.625rem;right:4.5rem}.now-playing-visible{opacity:1;visibility:visible}@media (prefers-reduced-motion:reduce){.music,.now-playing{transition:none}.music-bounce{animation:none}.music[aria-pressed=true]:before,.music[aria-pressed=true]:after{display:none}}.ticker{border-bottom:1px solid var(--fg);background:var(--bg);color:var(--fg);font-family:var(--serif);white-space:nowrap;font-size:.9375rem;line-height:2.25rem;position:absolute;top:0;left:0;right:0;overflow:hidden}.ticker-track{width:max-content;animation:ticker-scroll var(--ticker-duration,240s) linear infinite;display:flex}.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}.ticker-list{display:flex}.ticker-list li{padding-right:3.5rem}.ticker a{text-decoration-color:#0000}.ticker a:hover{text-decoration-color:currentColor}@keyframes ticker-scroll{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.ticker{scrollbar-width:none;overflow-x:auto}.ticker-track{animation:none}.ticker-list[aria-hidden]{display:none}}.app{flex:1 0 auto;width:100%;max-width:44rem;margin:0 auto;padding:clamp(4rem,16vh,9rem) 1.5rem 6rem}.header h1{letter-spacing:-.01em;font-size:1.0625rem;font-weight:600}.header p{color:var(--muted);text-wrap:pretty;margin-top:.5rem}.header a{color:var(--fg)}.links{margin-top:1.5rem}.links ul{flex-wrap:wrap;gap:.5rem 1.5rem;display:flex}.projects{margin-top:4.5rem}.projects h2{font-size:inherit;color:var(--muted);margin-bottom:1.25rem;font-weight:500}.projects ul{gap:.875rem;display:grid}.project{grid-template-columns:11rem 1fr;align-items:baseline;column-gap:1.5rem;text-decoration:none;display:grid}.project-name{text-underline-offset:.22em;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px;transition:text-decoration-color .15s}.project-arrow{color:var(--muted);margin-left:.25em;font-size:.8em;transition:color .15s;display:inline-block}.project-description{color:var(--muted);text-wrap:pretty}.project:hover .project-name{text-decoration-color:currentColor}.project:hover .project-arrow{color:var(--fg)}@media (width<=36rem){.app{padding-top:4.5rem;padding-bottom:4.5rem}.projects{margin-top:3.5rem}.project{grid-template-columns:1fr;row-gap:.125rem}.projects ul{gap:1.125rem}}@media (prefers-reduced-motion:reduce){.project-name,.project-arrow{transition:none}}
