.skills[data-astro-cid-2zwc476k]{color:var(--ink)}.row[data-astro-cid-2zwc476k] .set[data-astro-cid-2zwc476k]{gap:var(--space-2) var(--space-5);flex-wrap:wrap;display:flex}.list[data-astro-cid-2zwc476k] .set[data-astro-cid-2zwc476k]{gap:var(--space-2) var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));justify-items:start;display:grid}.marquee[data-astro-cid-2zwc476k]{padding-block:6px;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.marquee[data-astro-cid-2zwc476k] .track[data-astro-cid-2zwc476k]{width:max-content;animation:60s linear infinite slide;display:flex}.marquee[data-astro-cid-2zwc476k]:hover .track[data-astro-cid-2zwc476k]{animation-play-state:paused}.marquee[data-astro-cid-2zwc476k] .set[data-astro-cid-2zwc476k]{gap:var(--space-6);padding-right:var(--space-6);display:flex}.marquee[data-astro-cid-2zwc476k] li[data-astro-cid-2zwc476k]{white-space:nowrap}@keyframes slide{to{translate:-50%}}.skill[data-astro-cid-2zwc476k]{cursor:default;display:inline-block;position:relative}.skill[data-astro-cid-2zwc476k] i[data-astro-cid-2zwc476k]{pointer-events:none;font-style:normal}.press[data-astro-cid-2zwc476k]{transition:background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), translate .12s var(--ease-out);border-radius:5px;margin:0 -4px;padding:0 4px}.press[data-astro-cid-2zwc476k]:is(:hover,.on){background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--mat-line-strong), 0 2px 0 var(--mat-line-strong);cursor:pointer;translate:0 -2px}.press[data-astro-cid-2zwc476k].on{animation:tap .36s var(--ease-out) .6s}.press[data-astro-cid-2zwc476k]:active{box-shadow:inset 0 0 0 1px var(--mat-line-strong);translate:0}@keyframes tap{40%{box-shadow:inset 0 0 0 1px var(--mat-line-strong);translate:0}}.select[data-astro-cid-2zwc476k]:before{content:"";border:1px solid var(--accent);opacity:0;transition:opacity var(--dur-fast) var(--ease-out);pointer-events:none;position:absolute;inset:-1px -3px}.select[data-astro-cid-2zwc476k] .h[data-astro-cid-2zwc476k]{background:var(--paper);border:1px solid var(--accent);opacity:0;width:5px;height:5px;transition:opacity var(--dur-fast) var(--ease-out), scale var(--dur) var(--ease-out);position:absolute;scale:.4}.select[data-astro-cid-2zwc476k] .tl[data-astro-cid-2zwc476k]{top:-3px;left:-5px}.select[data-astro-cid-2zwc476k] .tr[data-astro-cid-2zwc476k]{top:-3px;right:-5px}.select[data-astro-cid-2zwc476k] .bl[data-astro-cid-2zwc476k]{bottom:-3px;left:-5px}.select[data-astro-cid-2zwc476k] .br[data-astro-cid-2zwc476k]{bottom:-3px;right:-5px}.select[data-astro-cid-2zwc476k]:is(:hover,.on):before,.select[data-astro-cid-2zwc476k]:is(:hover,.on) .h[data-astro-cid-2zwc476k]{opacity:1;scale:1}.comp[data-astro-cid-2zwc476k]:before{content:"";border:1px dashed var(--accent);opacity:0;transition:opacity var(--dur) var(--ease-out);pointer-events:none;border-radius:3px;position:absolute;inset:-2px -5px}.comp[data-astro-cid-2zwc476k] .diamond[data-astro-cid-2zwc476k]{border:1px solid var(--accent);opacity:0;width:6px;height:6px;transition:opacity var(--dur) var(--ease-out), scale var(--dur-slow) cubic-bezier(.3, 1.6, .5, 1);position:absolute;top:-9px;left:-5px;rotate:45deg;scale:0}.comp[data-astro-cid-2zwc476k]:is(:hover,.on):before,.comp[data-astro-cid-2zwc476k]:is(:hover,.on) .diamond[data-astro-cid-2zwc476k]{opacity:1;scale:1}.code[data-astro-cid-2zwc476k]{transition:color var(--dur) var(--ease-out)}.code[data-astro-cid-2zwc476k] i[data-astro-cid-2zwc476k]{font-family:var(--font-mono);color:var(--accent);opacity:0;transition:opacity var(--dur) var(--ease-out), translate var(--dur-slow) var(--ease-out);position:absolute;top:0}.code[data-astro-cid-2zwc476k] .br-l[data-astro-cid-2zwc476k]{margin-right:2px;right:100%;translate:4px}.code[data-astro-cid-2zwc476k] .br-r[data-astro-cid-2zwc476k]{margin-left:3px;left:100%;translate:-4px}.code[data-astro-cid-2zwc476k]:is(:hover,.on) i[data-astro-cid-2zwc476k]{opacity:1;translate:0}.mark[data-astro-cid-2zwc476k]{background-image:linear-gradient(color-mix(in srgb, var(--accent) 28%, transparent), color-mix(in srgb, var(--accent) 28%, transparent));transition:background-size .38s var(--ease-out);background-position:0 85%;background-repeat:no-repeat;background-size:0% 55%}.mark[data-astro-cid-2zwc476k]:is(:hover,.on){background-size:100% 55%}.wave[data-astro-cid-2zwc476k] span[data-astro-cid-2zwc476k]{transition:color var(--dur-fast) var(--ease-out);display:inline-block}.wave[data-astro-cid-2zwc476k]:is(:hover,.on) span[data-astro-cid-2zwc476k]{animation:hop .52s var(--ease-out) calc(var(--i) * 28ms);color:var(--accent);transition-delay:calc(var(--i) * 28ms)}@keyframes hop{40%{translate:0 -4px}to{translate:0}}.tm[data-astro-cid-2zwc476k] .tm-mark[data-astro-cid-2zwc476k]{color:var(--accent);opacity:0;transform-origin:0 100%;transition:opacity var(--dur-fast) var(--ease-out), scale var(--dur-slow) cubic-bezier(.3, 1.6, .5, 1);margin-left:1px;font-size:10px;position:absolute;top:-5px;left:100%;scale:0}.tm[data-astro-cid-2zwc476k]:is(:hover,.on) .tm-mark[data-astro-cid-2zwc476k]{opacity:1;scale:1}.draw[data-astro-cid-2zwc476k] .pen[data-astro-cid-2zwc476k]{width:100%;height:6px;position:absolute;bottom:-5px;left:0;overflow:visible}.pen[data-astro-cid-2zwc476k] path[data-astro-cid-2zwc476k]{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .6s var(--ease-in-out)}.draw[data-astro-cid-2zwc476k]:is(:hover,.on) .pen[data-astro-cid-2zwc476k] path[data-astro-cid-2zwc476k]{stroke-dashoffset:0}.rgb[data-astro-cid-2zwc476k]:is(:hover,.on){animation:.7s step-end both split}@keyframes split{0%{text-shadow:-2px 0 #ff2d55b3,2px 0 #00c8ffb3}20%{text-shadow:1px 0 #ff2d55b3,-1px 1px #00c8ffb3}40%{text-shadow:-1px -1px #ff2d55b3,2px 0 #00c8ffb3}60%{text-shadow:1px 0 #ff2d5580,-1px 0 #00c8ff80}80%,to{text-shadow:none}}@media (prefers-reduced-motion:reduce){.marquee[data-astro-cid-2zwc476k]{mask-image:none}.marquee[data-astro-cid-2zwc476k] .track[data-astro-cid-2zwc476k]{width:auto;animation:none}.marquee[data-astro-cid-2zwc476k] .set[data-astro-cid-2zwc476k]{gap:var(--space-2) var(--space-5);flex-wrap:wrap;padding-right:0}.marquee[data-astro-cid-2zwc476k] .set[data-astro-cid-2zwc476k][data-set="1"]{display:none}.press[data-astro-cid-2zwc476k]:is(:hover,.on){translate:none}.press[data-astro-cid-2zwc476k].on,.wave[data-astro-cid-2zwc476k]:is(:hover,.on) span[data-astro-cid-2zwc476k],.rgb[data-astro-cid-2zwc476k]:is(:hover,.on){animation:none}.mark[data-astro-cid-2zwc476k],.pen[data-astro-cid-2zwc476k] path[data-astro-cid-2zwc476k]{transition:none}}@media (width<=30rem){.list[data-astro-cid-2zwc476k] .set[data-astro-cid-2zwc476k]{grid-template-columns:repeat(2,minmax(0,1fr))}}.morph-box{gap:var(--space-2);display:grid}.morph{--u:calc(100cqw / 160);aspect-ratio:16/10;border-radius:var(--radius-md);background-color:var(--paper-2);background-image:radial-gradient(circle, var(--mat-line) 1px, transparent 1.2px);background-size:calc(10 * var(--u)) calc(10 * var(--u));background-position:calc(5 * var(--u)) calc(5 * var(--u));box-shadow:inset 0 0 0 1px var(--mat-line);position:relative;overflow:hidden;container-type:inline-size}.morph .p{--idle:none;transition-property:left,top,width,height,border-radius,background-color,box-shadow,rotate,opacity,clip-path;transition-duration:.76s;transition-timing-function:cubic-bezier(.65,0,.25,1);transition-delay:var(--d);animation:var(--idle);animation-delay:.85s;display:block;position:absolute}.morph-box .bar{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.morph-box .now{align-items:baseline;gap:var(--space-2);color:var(--ink);display:flex}.morph-box .count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px}.morph-box .nav{gap:var(--space-1);display:flex}.morph-box button{width:26px;height:26px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--mat-line);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border-radius:6px;place-items:center;display:grid}.morph-box button:hover{background:var(--paper-2);color:var(--accent)}.morph-box button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.morph-box button svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}@keyframes m-press{0%,34%,52%,to{transform:none}42%{transform:translateY(1.5px)scale(.97)}}@keyframes m-cursor{0%{transform:translate(28px,22px)}30%,70%{transform:none}40%{transform:scale(.8)}to{transform:translate(28px,22px)}}@keyframes m-ripple{0%,38%{opacity:0;transform:scale(.4)}42%{opacity:1}70%,to{opacity:0;transform:scale(2.2)}}@keyframes m-grow{0%{transform:scaleX(0)}40%,85%{transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@keyframes m-blink{0%,to{opacity:.25}50%{opacity:1}}@keyframes m-float{0%,to{transform:none}50%{transform:translateY(-2px)}}@keyframes m-spin{0%,40%{transform:none}60%,to{transform:rotate(90deg)}}@keyframes m-type{0%{transform:scaleX(0)}20%,85%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes m-caret{50%{opacity:0}}@keyframes m-sweep{0%,15%{transform:scaleX(0)}45%,85%{transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes m-wander{0%,to{transform:none}35%{transform:translate(-30px,-12px)}65%{transform:translate(-12px,-22px)}}@keyframes m-bounce{0%,to{animation-timing-function:cubic-bezier(.2,.7,.3,1);transform:translateY(0)scale(1.1,.9)}10%{transform:translateY(0)}50%{animation-timing-function:cubic-bezier(.6,0,.8,.3);transform:translateY(-40px)}}@keyframes m-squash{0%,to{opacity:1;transform:scaleX(1)}50%{opacity:.4;transform:scaleX(.5)}}@keyframes m-fade{0%,to{opacity:.2}50%{opacity:1}}@keyframes m-orbit{0%,to{transform:none}50%{transform:translate(6px,12px)}}@keyframes m-pop{0%,60%,to{transform:none}70%{transform:translateY(-4px)}}@keyframes m-pulse{0%,to{transform:none}50%{transform:scale(1.12)}}@keyframes m-sketch{0%,to{transform:rotate(0)translate(0)}25%{transform:rotate(-8deg)translate(4px)}50%{transform:rotate(4deg)translate(8px)}75%{transform:rotate(-6deg)translate(3px)}}@keyframes m-drift{0%,to{transform:none}50%{transform:translate(14px)}}@keyframes m-chan-r{0%,to{transform:translate(-3px)}50%{transform:translate(2px,-2px)}}@keyframes m-chan-b{0%,to{transform:translate(3px)}50%{transform:translate(-2px,2px)}}@keyframes m-turn{to{transform:rotate(360deg)}}@keyframes m-twinkle{0%,to{opacity:.2}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.morph .p{transition:none;animation:none}}
