*,:before,:after{box-sizing:border-box}@font-face{font-family:Monaspace Neon;src:url(/fonts/monaspace-neon-var.woff2)format("woff2"),url(/fonts/monaspace-neon-var.woff)format("woff");font-display:swap}:root{--theme:oklch(30% .08 148);--bg:oklch(from var(--theme) 12% c h);--bg-accent:oklch(from var(--theme) 23% .05 h);--color:oklch(from var(--theme) 91% .03 h);--border:1px solid var(--bg-accent);background-color:var(--bg);color:var(--color);font-feature-settings:"calt", "liga", "ss01", "ss02", "ss03", "ss04", "ss05", "ss06", "ss07", "ss08", "ss09", "cv01" 4, "cv31" 0;font-family:Monaspace Neon,Menlo,Monaco,Courier New,monospace;line-height:1.5}::selection{background:oklch(from var(--theme) 100% c h);color:oklch(from var(--theme) 50% .3 h);text-shadow:none}p,figure{margin:0}ul{margin:0;padding:0;list-style:none}body{filter:url(#glow);grid-template-columns:minmax(10px,1fr) minmax(auto,650px) minmax(10px,1fr);margin:0;display:grid}body:before,body:after{content:"";grid-column:1/4;height:10px;display:block}body:before{border-bottom:var(--border)}body:after{border-top:var(--border);height:20svh}hr{all:initial;border-top:var(--border);grid-column:1/4}hr[data-big]{border-bottom:var(--border);background-size:10px 10px;background-image:repeating-linear-gradient(315deg, var(--bg-accent) 0, var(--bg-accent) 1px, transparent 0, transparent 50%);grid-template-columns:subgrid;height:2lh;display:grid}hr[data-big]:after{content:"";border-inline:var(--border);grid-column:2/3;display:block}section{border-inline:var(--border);grid-column:2/3;padding:10px}.rgb-mask{pointer-events:none;z-index:10;opacity:.15;mix-blend-mode:screen;filter:saturate(1.4);background:repeating-linear-gradient(90deg,#ff3c3c38 0 1px,#28ffa008 1px 2px,#5a96ff38 2px 3px,#0000 3px 4px);position:fixed;inset:0}[data-glitch-active]{filter:url(#glitch)}h2{text-align:center}.contributions{grid-column:1/4;grid-template-columns:subgrid;border:none;padding:0;display:grid}.contributions .graph{border-inline:var(--border);grid-column:2/3;grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(53,1fr);grid-auto-flow:column;gap:1px;display:grid}.contributions .graph:empty:before{content:"";aspect-ratio:1;display:block}.contributions .graph>span{aspect-ratio:1;background-color:oklch(from var(--theme) calc(25% * var(--level)) .04 h)}.contributions .total{text-align:center;writing-mode:sideways-lr;text-orientation:mixed;font-size:.8rem}.repositories{--repositories-gap:10px;flex-direction:column;gap:10px;padding-inline:0;display:flex;overflow:hidden}.repositories .row{gap:var(--repositories-gap);background:repeating-linear-gradient(90deg, transparent 0, transparent 19px, color-mix(in oklch, var(--bg-accent) 50%, transparent) 20px), var(--bg);display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000004d,#000 6% 94%,#0000004d);mask-image:linear-gradient(90deg,#0000004d,#000 6% 94%,#0000004d)}.repositories ul{align-items:center;gap:var(--repositories-gap);min-width:max-content;animation:repositories-marquee calc(var(--count) * 6s) linear infinite;flex-shrink:0;display:flex}.repositories .row[data-direction=ltr] ul{animation-direction:reverse}.repositories a{border:var(--border);background:linear-gradient(135deg, color-mix(in oklch, var(--bg-accent) 60%, transparent), transparent 70%);color:currentColor;white-space:nowrap;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);grid-template-areas:"image title title""image key-a val-a""image key-b val-b";align-items:center;column-gap:8px;padding:12px;text-decoration:none;display:grid}.repositories img{object-fit:cover;grid-area:image;width:60px;height:60px;display:block}.repositories p{grid-area:title;margin-bottom:4px;font-size:small;font-weight:900}.repositories dl{display:contents}.repositories dt{font-size:small;font-weight:300}.repositories dd{opacity:.75;margin:0;font-size:small;font-weight:100}@media (hover:hover){.repositories .row:hover ul{animation-play-state:paused}.repositories a:hover{background:linear-gradient(135deg, color-mix(in oklch, var(--bg-accent) 80%, transparent), transparent 70%)}}@media (width<=640px){.repositories{--repositories-gap:10px}.repositories .row{min-height:84px;padding:10px 0}.repositories ul{gap:var(--repositories-gap);padding-inline:var(--repositories-gap)}.repositories a{grid-template-columns:36px minmax(0,1fr);width:min(240px,100vw - 48px);padding:10px}.repositories img{width:36px;height:36px}}@media (prefers-reduced-motion:reduce){.repositories .row{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.repositories ul{animation:none}}@keyframes repositories-marquee{0%{transform:translate(0)}to{transform:translateX(calc(-100% - var(--repositories-gap)))}}.article{padding:10px 0;container-type:inline-size}.article ul{--count:2;--gap:30px;--width:calc((100cqw - var(--gap) * (var(--count) - 1)) / var(--count));--ch-width:calc(round(down, var(--width), 1ch));--img-ratio:calc(3 / 2);--img-height:calc(round(nearest, (var(--ch-width) / var(--img-ratio)), 1lh));flex-wrap:wrap;justify-content:space-evenly;row-gap:1lh;font-size:smaller;display:flex}@media (width<550px){.article ul{--count:1}}.article a{width:var(--ch-width);z-index:0;color:currentColor;place-self:center;height:100%;text-decoration:none;display:block;position:relative}.article a:after{content:"";background:var(--bg);opacity:0;z-index:1;pointer-events:none;transition:opacity .25s;display:block;position:absolute;inset:0}.article a:hover:after{opacity:.9}.article img{box-shadow:0 0 0 1px var(--bg-accent);width:100%;height:var(--img-height);object-fit:cover;object-position:center;display:block}.article figcaption{text-wrap:balance;font-weight:200}.article div{z-index:2;pointer-events:none;padding:1lh 3ch;position:absolute;inset:0}.article p{color:#0000;opacity:0;max-height:100%;transition:opacity .25s;overflow:hidden}a:hover :is(.article p){opacity:1;pointer-events:all}@starting-style{.article p{opacity:0}}.article p span{white-space:pre-wrap;clip-path:inset(-1em 0);color:#0000;position:relative;overflow:hidden}.article p span:after{content:attr(data-chars);color:var(--color);word-break:break-all;width:1ch;animation:hide-scrambled 0s linear calc(var(--delay) * 10ms) backwards, unscramble .4s steps(var(--count), jump-end) calc(var(--delay) * 10ms) both;line-height:3em;position:absolute;inset:auto 0 0}@keyframes hide-scrambled{0%{color:#0000}to{color:var(--color)}}@keyframes unscramble{0%{transform:translateY(calc(100% - 2em))}to{transform:translateY(1em)}}.labs{grid-column:1/4;grid-template-columns:subgrid;border:none;padding:0;display:grid}.labs ul{display:contents}.labs div[data-separator]{border-top:var(--border);grid-column:1/4}.labs li{z-index:0;border-inline:var(--border);--light:oklch(from var(--theme) 60% .12 h);--shine:3px;grid-column:2/3;position:relative}.labs li:before{content:"";z-index:3;--size:10px;width:var(--size);height:var(--size);left:calc(-1 * var(--size) / 2 - 1px);top:calc(50% - var(--size) / 2 + 1px);background-color:var(--light);box-shadow:0 0 var(--shine) var(--light);border-radius:50%;transition:background-color .1s;display:block;position:absolute}.labs li:after{content:"READY";z-index:2;text-align:center;writing-mode:sideways-lr;text-orientation:mixed;height:100%;color:var(--light);font-size:.8rem;transition:color 50ms;display:block;position:absolute;top:0;right:-1lh}.labs li.swap{--light:oklch(from var(--theme) 60% .2 calc(h - 120));pointer-events:none}.labs li.swap:after{content:"SWAP"}.labs li.swap:before{--shine:10px}.labs li.hold{--light:oklch(from var(--theme) 70% .2 calc(h - 60))}.labs li.hold:after{content:"HOLD"}.labs li.hold:before{--shine:10px}.labs .frame{display:grid;overflow:hidden}.labs a{color:currentColor;z-index:1;height:4lh;box-shadow:0 0 0 1px var(--bg-accent);--drop-bounce:linear(0, .48 20.4%, 1 37.8%, .849 44.5%, .813 47.5%, .802 50.4%, .811 53.1%, .84 55.9%, .999 65.5%, .953 69.4%, .938 73.2%, .949 76.7%, 1 84.5%, .989 89.3%, 1);--spring-easing:linear(0, .03, .14 4%, .72 13%, .94, 1.08, 1.15, 1.16, 1.15 30%, 1.02 43%, .99, .98 51%, .97 57%, 1 77%, 1);--click-easing:linear(0 0%, .0121 2.63%, .0271 5.26%, .0448 7.89%, .0653 10.53%, .0884 13.16%, .1141 15.79%, .1423 18.42%, .1728 21.05%, .2055 23.68%, .2401 26.32%, .2765 28.95%, .3143 31.58%, .3534 34.21%, .3932 36.84%, .4336 39.47%, .474 42.11%, .5141 44.74%, .5534 47.37%, .5914 50%, .6276 52.63%, .6616 55.26%, .6929 57.89%, .7209 60.53%, .7452 63.16%, .7655 65.79%, .7812 68.42%, .7921 71.05%, .7978 73.68%, .7993 76.32%, .8128 78.95%, .8554 81.58%, .9749 84.21%, 1.086 86.84%, 1.0739 89.47%, 1.0207 92.11%, .9633 94.74%, .9352 97.37%, 1 100%);grid-area:1/1/2/2;text-decoration:none;display:block;position:relative;overflow-y:clip}li.swap :is(.labs a):first-child{animation:drop-out .4s var(--drop-bounce) forwards .2s, belt-out 1.5s cubic-bezier(.65, 0, 1, 1) .6s forwards}li.swap :is(.labs a):last-child{animation:pop-in .5s var(--click-easing) 3.05s backwards, belt-in 1.5s cubic-bezier(0, 0, .5, .94) 1.5s backwards}.labs a div{text-align:center;white-space:nowrap;background-color:var(--bg);border-block-end:var(--border);width:min-content;padding-inline-start:5px;position:relative}.labs a div:before{content:"";transform-origin:0 100%;background-color:var(--bg);border-block-end:var(--border);width:1.41421lh;height:100%;display:block;position:absolute;top:0;left:100%;rotate:-45deg}.labs a div p{position:relative}.labs img{z-index:0;object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.labs .wheels{z-index:0;background-color:#000;justify-content:space-around;display:flex;position:absolute;inset:0}.labs .wheels span{border-inline:var(--border);--dur:.35s;width:30px;height:100%;display:block;position:relative}.labs .wheels span:before,.labs .wheels span:after{content:"";background-color:var(--bg-accent);width:1px;height:100%;animation:belt-spin ease-in-out var(--dur) infinite;display:block;position:absolute;top:0;left:0}.labs .wheels span:after{animation-delay:calc(-1 * var(--dur) * 1/2)}@keyframes belt-spin{0%{translate:0}to{translate:28px}}@keyframes belt-out{0%{translate:0}to{translate:100%}}@keyframes drop-out{0%{filter:none;transform:none}to{filter:saturate(.8)brightness(.8);transform:scale(.88,.84)}}@keyframes belt-in{0%{translate:-100%}to{translate:0}}@keyframes pop-in{0%{filter:saturate(.8)brightness(.8);transform:scale(.88,.84)}to{filter:none;transform:none}}.identity{cursor:text;background-color:#000;font-weight:200;position:relative}.identity dl,.identity dd,.identity dt{white-space:pre-wrap;word-break:break-word;margin:0}.identity dt:before{content:"> ";flex-shrink:0}.identity dd:before{content:"  ";flex-shrink:0}.identity dd,.identity dt{padding-block:.2lh;line-height:1.2;display:flex}.identity dt{color:oklch(from var(--theme) 50% .1 h)}.identity dd:empty{display:none}.identity span{color:oklch(from var(--color) 60% c h)}.identity:before{content:"";background-color:var(--bg-accent);width:1px;display:block;position:absolute;inset:0 auto 0 -10px}.identity div{color:oklch(from var(--theme) 70% .2 h);display:flex}.identity div:before{content:"> ";flex-shrink:0}.identity textarea{color:inherit;width:100%;font:inherit;field-sizing:content;resize:none;background-color:#0000;border:none;outline:none;padding:0;display:inline-block}.head{background-image:radial-gradient(var(--bg-accent) 1px, transparent 0);background-size:10px 10px;justify-content:center;padding:20px;display:flex;position:relative}.head figure{border:var(--border);background:var(--bg);border-radius:50%;height:140px;padding:20px;display:flex;position:relative;overflow:hidden}.head svg{height:100px}.head img{object-fit:cover;object-position:center;opacity:0;width:100%;height:100%;transition:opacity .3s ease-out;position:absolute;inset:0}.head figure:hover img{opacity:1;transition:opacity 4s ease-in}.head h1{margin:0;font-size:1rem;position:absolute;bottom:10px;left:10px}.head h1 a{color:currentColor;text-decoration:none}.links{z-index:1;flex-direction:row-reverse;padding:0;display:flex;position:relative}.links a{cursor:pointer;border-inline-start:var(--border);color:currentColor;padding:10px;display:flex;position:relative}.links a p{border-inline:var(--border);border-block:var(--border);background-color:var(--bg);opacity:0;z-index:1;padding-inline:5px;transition:opacity 75ms;position:absolute;top:100%;right:-1px}.links a:hover p{opacity:1}.links svg{width:1lh;height:1lh}.footer{text-align:center;font-size:smaller}.footer a{color:currentColor;text-decoration:none}
