*,*:after,*:before{box-sizing:border-box}:root{font-size:13px;--color-text: #000;--color-bg: #fff;--color-link: #000;--color-link-hover: #000;--page-padding: 1.5rem}body{margin:0;color:var(--color-text);background-color:var(--color-bg);font-family:forma-djr-mono,monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-transform:uppercase}a{text-decoration:none;color:var(--color-link);outline:none;cursor:pointer}a:hover{text-decoration:underline;color:var(--color-link-hover)}a:focus{outline:none;background:#d3d3d3}a:focus:not(:focus-visible){background:transparent}a:focus:focus-visible{outline:2px solid red;background:transparent}.frame{padding:1rem var(--page-padding) 0;display:grid;z-index:1000;position:relative;grid-row-gap:1rem;grid-column-gap:1.5rem;pointer-events:none;justify-items:start;grid-template-columns:auto auto auto 1fr;grid-template-areas:"title title title" "archive github ..." "tags tags tags" "sponsor sponsor sponsor"}.frame #cdawrap{justify-self:start;grid-area:sponsor}.frame a,.frame button{pointer-events:auto}.frame .frame__title{grid-area:title;font-size:inherit;margin:0}.frame .frame__back{grid-area:back;justify-self:start}.frame .frame__archive{grid-area:archive;justify-self:start}.frame .frame__github{grid-area:github}.frame .frame__tags{grid-area:tags;display:flex;flex-wrap:wrap;gap:1rem}.frame .frame__demos{grid-area:demos;display:flex;flex-wrap:wrap;gap:1rem}@media screen and (min-width:53em){.frame{padding:var(--page-padding);position:fixed;height:100vh;top:0;left:0;width:100%;grid-template-columns:auto auto auto auto 1fr;grid-template-rows:auto auto;align-content:space-between;grid-template-areas:"title back github archive sponsor" "tags tags tags tags ..."}.frame .frame__tags{align-self:end}.frame .frame__demos,.frame #cdawrap{justify-self:end;text-align:right;max-width:250px}}.content{padding:100vh var(--page-padding) 25vh}.group{display:grid;margin-bottom:10vh;display:flex;flex-direction:column;flex:1 1 100px}.el{white-space:nowrap;filter:blur(0px);text-transform:uppercase;opacity:.6}.el--xl{font-size:clamp(2rem,20vw,15rem);opacity:1;font-family:lores-12,sans-serif;font-weight:400}.pos-2{margin-left:25vw}.pos-3{margin-left:70vw}.pos-4{margin-left:auto}.pos-5{margin-top:200px;opacity:1}.pos-6{margin-left:auto;margin-top:200px;opacity:1}.pos-7{margin-top:200px;opacity:1;filter:blur(1.2px)}.pos-8{margin-left:25vw;margin-top:50px;opacity:1;filter:blur(2px)}.pos-9{margin-left:25vw;margin-top:250px}.pos-10{margin-left:70vw;margin-top:40vh}.logo{font-size:clamp(2rem,10vw,4rem);font-family:lores-12,sans-serif;font-weight:400}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.typing-indicator{display:inline-block;animation:blink-cursor .7s linear infinite}.fixed{display:grid;place-items:center;width:100%;height:100vh;pointer-events:none;position:fixed;left:0;top:0}.related{container-type:inline-size}.related p{text-align:center;padding-top:3rem}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:5rem var(--page-padding) 10vh;width:100%;max-width:1000px;margin:0 auto}.grid__item{display:flex;flex-direction:column;text-decoration:none;color:inherit;border-radius:12px;overflow:hidden;background:#111}.grid__item-img{width:100%;aspect-ratio:4 / 3;background-size:cover;background-position:center;opacity:.4;transition:all .5s ease}.grid__item:hover .grid__item-img{transform:scale(1.1);opacity:1}.grid__item-title{padding:1rem;font-size:.95rem;font-weight:400;line-height:1.4}.grid__item:focus-visible{outline:2px solid #fff;outline-offset:4px}@container (max-width: 800px){.grid{grid-template-columns:1fr}.grid__item-img{display:none}.grid__item-title{padding:.25rem;line-height:1}}.site-head{position:fixed;top:0;left:0;width:100%;padding:var(--page-padding);display:flex;justify-content:space-between;align-items:flex-start;z-index:2000;pointer-events:none}.site-head a{pointer-events:auto;font:inherit;color:inherit;text-transform:uppercase}.site-head a:hover{text-decoration:underline}body.is-home .site-brand{display:none}.site-nav{position:fixed;top:var(--page-padding);left:var(--page-padding);z-index:2500;transform-origin:top left;will-change:transform}.site-nav ul{list-style:none;margin:0;padding:0}.site-nav li{line-height:1.5}.site-nav a{display:inline-block;font-family:forma-djr-mono,monospace;font-size:1rem;color:inherit;text-decoration:none;text-transform:uppercase}.site-nav a:hover{text-decoration:underline}body.is-sub .site-nav{left:auto;right:var(--page-padding);text-align:right;transform-origin:top right}.page{padding:calc(var(--page-padding) * 5) var(--page-padding) 20vh;max-width:820px}.page h1{font-family:lores-12,sans-serif;font-weight:400;font-size:clamp(2.6rem,9vw,6rem);line-height:1;margin:0 0 .5em}.page h2{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;opacity:.5;margin:3.5rem 0 1.25rem}.page p,.page li,.page .prose{text-transform:none;font-size:1.05rem;line-height:1.7}.page p{max-width:60ch;margin:0 0 1.1rem}.page a{color:inherit}.index-list{list-style:none;margin:0;padding:0}.index-list li{border-bottom:1px solid rgba(0,0,0,.15)}.index-list .row,.index-list a{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 0;color:inherit;text-decoration:none}.index-list .name{font-family:lores-12,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(1.5rem,4.5vw,2.6rem);line-height:1.05}.index-list a:hover .name{text-decoration:underline}.index-list .tag{font-family:forma-djr-mono,monospace;font-size:.8rem;text-transform:uppercase;opacity:.5;white-space:nowrap}.page__note{text-transform:none;opacity:.55;font-size:.95rem;margin-top:1.5rem}.tsa-word{display:inline-block;white-space:nowrap}.tsa-char{display:inline-block;white-space:pre}.cv-id{text-transform:none;font-family:forma-djr-mono,monospace;font-size:clamp(1rem,2vw,1.2rem);margin:-.25em 0 .4rem;opacity:.85}.cv-id-meta{text-transform:none;font-family:forma-djr-mono,monospace;font-size:.85rem;margin:0 0 2.5rem;opacity:.55}.cv-id-meta a{color:inherit}.cv-summary{text-transform:none;font-size:1.1rem;line-height:1.6;max-width:60ch;margin:0 0 1rem}.cv-list{list-style:none;margin:0;padding:0}.cv-item{padding:1.1rem 0;border-bottom:1px solid rgba(0,0,0,.12)}.cv-item:last-child{border-bottom:0}.cv-item__head{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem}.cv-item__title{text-transform:none;font-size:1.15rem;font-weight:600;line-height:1.35}.cv-item__date,.cv-item__tag{font-family:forma-djr-mono,monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;opacity:.5;white-space:nowrap;flex-shrink:0}.cv-item__desc{text-transform:none;font-size:1rem;line-height:1.6;max-width:64ch;margin:.4rem 0 0;opacity:.85}@media(max-width:540px){.cv-item__head{flex-direction:column;gap:.2rem}}.facts{margin:0;padding:0}.facts>div{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid rgba(0,0,0,.12)}.facts>div:last-child{border-bottom:0}.facts dt{font-family:forma-djr-mono,monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;opacity:.5;padding-top:.15rem}.facts dd{margin:0;text-transform:none;font-size:1.05rem;line-height:1.6}@media(max-width:540px){.facts>div{grid-template-columns:1fr;gap:.3rem}}
