@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./outfit-latin-ext-wght-normal-DdQaqQDo.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./outfit-latin-wght-normal-Bc-8i84L.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#303139;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--page:#fff;--text:#303139;--muted:#777783;--faint:#9b9ba7;--line:#ececf0;--pink:#fa338e;--cyan:#00cddb;--yellow:#ff0;--pink-ink:#c92170;--cyan-ink:#087c89;--card:#fff;--surface:#fafafd;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;font-family:Outfit Variable,Trebuchet MS,sans-serif;font-size:120%}:root[data-theme=dark]{--page:#14151b;--text:#f0edf5;--muted:#aca8bc;--faint:#858296;--line:#30303c;--pink:#ff5dab;--cyan:#28ddea;--pink-ink:#ff80bb;--cyan-ink:#61d8e3;--card:#1d1e27;--surface:#22232d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;scroll-padding-top:2rem}body{background:var(--page);color:var(--text);margin:0;transition:background-color .18s,color .18s}body:before{content:"";pointer-events:none;background:radial-gradient(13.125rem 9.375rem at calc(50% - 10.625rem) 10.625rem,#00d7e906,#0000),radial-gradient(13.125rem 9.375rem at calc(50% + 10.625rem) 8.75rem,#ff359007,#0000);height:29.375rem;position:absolute;top:5.625rem;left:0;right:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}button,a,.project-card{touch-action:manipulation}button{cursor:pointer}svg{display:block}::selection{color:#322037;background:#ffb9da}:focus-visible{outline:.1875rem solid var(--pink);outline-offset:.3125rem}.site-shell{max-width:66.25rem;margin-inline:auto;padding-inline:2.25rem}.site-header{justify-content:space-between;align-items:center;height:6.1875rem;display:flex;position:relative}.blog-link{align-items:center;gap:.5rem;padding:.625rem 0;font-size:.875rem;font-weight:500;display:flex}.blog-link svg{width:1.125rem;height:1.125rem;color:var(--pink)}.blog-link .small-arrow{color:var(--faint);margin-left:.125rem;font-size:1rem;transition:transform .16s}.blog-link:hover{color:var(--pink-ink)}.blog-link:hover .small-arrow{transform:translate(.125rem,-.125rem)}.header-colors{gap:.3125rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.header-colors i{background:var(--cyan);border-radius:50%;width:.4375rem;height:.4375rem}.header-colors i:nth-child(2){background:var(--pink)}.header-colors i:nth-child(3){background:#f2d448}.header-colors i:nth-child(4){background:var(--text)}.theme-toggle{border:.0625rem solid var(--line);background:var(--card);width:2.625rem;height:2.625rem;color:var(--text);border-radius:50%;flex-shrink:0;grid-template:1fr/1fr;place-items:center;padding:0;line-height:0;transition:border-color .16s,transform .16s;display:grid}.theme-toggle:hover{border-color:var(--cyan);transform:rotate(-10deg)}.theme-toggle svg{grid-area:1/1;place-self:center;width:1.3125rem;height:1.3125rem}.sun-icon,[data-theme=dark] .moon-icon{display:none}[data-theme=dark] .sun-icon{color:#f3d76c;display:block}.profile{text-align:center;padding-top:1.5rem;position:relative}.avatar-scene{width:15rem;height:9rem;margin:0 auto;position:relative}.avatar-frame{background:var(--page);border:.0625rem solid var(--line);width:8rem;height:8rem;box-shadow:-.3125rem .125rem 0 -.125rem var(--cyan), .3125rem -.125rem 0 -.125rem var(--pink);border-radius:50%;margin-inline:auto;padding:.3125rem;transform:rotate(-6deg)}.avatar{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block;transform:rotate(6deg)}.hello-sticker{background:var(--card);border:.0625rem solid var(--line);border-radius:.4375rem;align-items:center;gap:.3em;padding:.4375rem .6875rem;font-size:.75rem;font-weight:500;display:inline-flex;position:absolute;bottom:.8125rem;right:-.625rem;transform:rotate(8deg);box-shadow:0 .1875rem .5rem #17182d06}.drawn-heart{color:var(--pink);fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;display:block}.hello-heart{shape-rendering:geometricprecision;width:1.25em;height:1.25em}.hello-heart path{stroke-width:2px;vector-effect:non-scaling-stroke}.sparkle{line-height:1;position:absolute}.sparkle-pink{color:var(--pink);font-size:1.875rem;top:.75rem;left:.75rem;transform:rotate(12deg)}.sparkle-cyan{color:var(--cyan);font-size:1.6875rem;top:.625rem;right:1.125rem}.little-dot{border:.09375rem solid var(--cyan);border-radius:50%;width:.375rem;height:.375rem;position:absolute;bottom:2.4375rem;left:1.5rem}h1{letter-spacing:-.18125rem;margin:.9375rem 0 .8125rem;font-size:3.4375rem;font-weight:750;line-height:1.1}h1>span:first-child{color:var(--pink)}.name-dot{color:var(--cyan)}.profile-bio{color:var(--muted);letter-spacing:.00625rem;margin:0;font-size:1rem;font-weight:350}.smiley{color:var(--pink-ink);padding-left:.125rem;display:inline-block}.social-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:.625rem;margin-top:1.5rem;display:flex}.social-links a{border:.0625rem solid var(--line);background:var(--card);border-radius:6.1875rem;grid-template-columns:.9375rem auto .9375rem;align-items:center;gap:.5rem;padding:.625rem .875rem;font-size:.8125rem;font-weight:450;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid}.social-label{text-align:center}.social-links svg{width:.9375rem;height:.9375rem}.social-links a:nth-child(2) svg{color:var(--cyan-ink)}.social-links a:nth-child(3) svg{color:var(--pink-ink)}.social-arrow{color:var(--faint);justify-self:center;font-size:.8125rem}.social-links a:hover{border-color:var(--pink);box-shadow:0 .125rem 0 -.0625rem var(--pink), 0 .25rem 0 -.0625rem var(--cyan), 0 .375rem 0 -.0625rem var(--yellow);transform:translateY(-.3125rem)}.social-links a:first-child:hover{border-color:var(--yellow);box-shadow:0 .125rem 0 -.0625rem var(--yellow), 0 .25rem 0 -.0625rem var(--pink), 0 .375rem 0 -.0625rem var(--cyan)}.social-links a:nth-child(2):hover{border-color:var(--cyan);box-shadow:0 .125rem 0 -.0625rem var(--cyan), 0 .25rem 0 -.0625rem var(--yellow), 0 .375rem 0 -.0625rem var(--pink)}.projects-section{padding-top:4.0625rem;scroll-margin-top:.9375rem}.section-heading{justify-content:space-between;align-items:flex-end;gap:1rem;max-width:988px;margin:0 auto 1.625rem;display:flex}h2{letter-spacing:-.05rem;align-items:center;gap:.6875rem;margin:0;font-size:1.6875rem;font-weight:600;display:flex}.project-count{color:var(--muted);border:.0625rem solid var(--line);letter-spacing:0;border-radius:.4375rem;padding:.25rem .5rem;font-size:.6875rem;font-weight:500;transform:rotate(-6deg)}.project-grid{--project-gap:24px;--edge-cyan:color-mix(in srgb, var(--cyan) 50%, var(--card));--edge-pink:color-mix(in srgb, var(--pink) 50%, var(--card));--edge-yellow:color-mix(in srgb, var(--yellow) 47%, var(--card));--card-pattern:repeating-linear-gradient(125deg, var(--edge-cyan) 0px, var(--edge-cyan) 45px, var(--edge-pink) 140px, var(--edge-pink) 190px, var(--edge-yellow) 285px, var(--edge-yellow) 330px, var(--edge-cyan) 425px);justify-content:center;align-items:stretch;gap:var(--project-gap);flex-wrap:wrap;max-width:988px;margin-inline:auto;font-size:16px;display:flex;position:relative}.project-card{--card-x:0px;--card-y:-4px;--depth-x:4px;--depth-y:7px;flex-direction:column;flex:0 0 calc((100% - 2 * var(--project-gap)) / 3);isolation:isolate;text-align:center;min-width:0;min-height:15em;transform:translate(var(--card-x), var(--card-y));border:1px solid #0000;border-radius:1.125em;align-items:center;gap:.5em;padding:1.25em;transition:transform .18s;display:flex;position:relative}.project-card:before,.project-card:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:-1px}.project-card:before{z-index:-2;background-image:var(--card-pattern);background-size:var(--pattern-width,1100px) var(--pattern-height,2200px);background-position:calc(var(--pattern-x,0px) - var(--card-x) - var(--depth-x)) calc(var(--pattern-y,0px) - var(--card-y) - var(--depth-y));transform:translate(var(--depth-x), var(--depth-y));transition:transform .18s}.project-card:after{z-index:-1;background:linear-gradient(var(--card), var(--card)) padding-box, var(--card-pattern) border-box;background-size:100% 100%, var(--pattern-width,1100px) var(--pattern-height,2200px);background-position:0 0, calc(var(--pattern-x,0px) - var(--card-x)) calc(var(--pattern-y,0px) - var(--card-y));border:1px solid #0000}.color-pink{--accent:#fa60a2;--secondary:#55dce3;--cover:#fff1f7}.color-cyan{--accent:#51d3dc;--secondary:#ff86b8;--cover:#ebfbfc}.color-lilac{--accent:#ba9af0;--secondary:#f58eba;--cover:#f5f0ff}.color-yellow{--accent:#efd36b;--secondary:#ff98bf;--cover:#fffbee}.project-card:is(:hover,:focus-within){--card-x:-2px;--card-y:-9px;--depth-x:6px;--depth-y:12px}.project-cover{background-color:var(--cover);background-image:radial-gradient(var(--accent) .04375em, transparent .04375em);background-size:.75em .75em;border-radius:1.125em;flex-shrink:0;place-items:center;width:5em;height:5em;display:grid;position:relative;overflow:hidden}.project-art{width:4.25em;height:4em;transition:transform .22s;overflow:visible;transform:rotate(-7deg)}.project-card:nth-child(2n) .project-art{transform:rotate(7deg)}.project-card:hover .project-art{transform:rotate(0)scale(1.06)}.art-main{fill:var(--accent)}.art-shadow{fill:var(--secondary);opacity:.5}.art-secondary{fill:var(--secondary)}.art-white{fill:#fffdf9}.art-ink{fill:#494452}.art-line{stroke:#655573;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.art-outline{stroke:var(--accent);stroke-width:2px}.art-highlight{stroke:#fffdf9;stroke-width:3px;stroke-linecap:round;opacity:.85}.art-ring{stroke:#fffdf9;stroke-width:1px;opacity:.4}.project-cover.has-image{width:var(--image-width,160px);background:0 0;border-radius:0;height:80px;overflow:hidden}.has-image img{width:auto;height:auto;max-width:var(--image-width,160px);object-fit:contain;max-height:80px;transform:translate(var(--image-offset-x,0px), var(--image-offset-y,0px)) scale(var(--image-scale,1));border-radius:0;display:block}.has-image img.wide-image{width:var(--image-width,160px)}.has-image img.rounded-image{border-radius:8px}.project-cover.has-emoji{background:0 0;border-radius:0;width:80px;height:80px;font-size:4em;line-height:1}.project-content{flex-direction:column;flex:1;width:100%;display:flex}.project-heading{flex-direction:column;align-items:center;gap:.75em;width:100%;display:flex}.project-heading h3{letter-spacing:-.4px;overflow-wrap:anywhere;margin:0;font-size:1.5em;font-weight:600;line-height:1.2}.project-content p{color:var(--muted);overflow-wrap:anywhere;white-space:pre-line;margin:0;font-size:.9375em;font-weight:400;line-height:1.6}.project-link{text-decoration:none;transition:color .16s}.project-link h3{text-underline-offset:4px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .16s}.project-link:hover{color:var(--pink-ink)}.project-link:is(:hover,:focus-visible) h3{-webkit-text-decoration-color:var(--pink);text-decoration-color:var(--pink)}.project-content p a{color:var(--pink-ink);text-underline-offset:3px;text-decoration:underline}.site-footer{border-top:.0625rem solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:1.25rem;margin-top:3.0625rem;padding:1.5625rem 0 1.875rem;font-size:.6875rem;font-weight:350;display:flex}.footer-signature{align-items:center;gap:.5625rem;display:flex}.footer-source{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px}.footer-source:hover{color:var(--pink-ink);-webkit-text-decoration-color:var(--pink);text-decoration-color:var(--pink)}.mini-flower{color:var(--pink);font-size:1.4375rem;line-height:1}.footer-goodbye{text-align:right;justify-content:flex-end;align-items:center;gap:.35em;display:inline-flex}.footer-heart{stroke-width:1.6px;width:1.2em;height:1.2em}.skip-link{background:var(--card);color:var(--text);z-index:10;border-radius:.5rem;padding:.75rem 1.125rem;position:fixed;top:.625rem;left:1.25rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:.0625rem;height:.0625rem;position:absolute;overflow:hidden}.noscript-note{text-align:center;color:var(--muted);padding:1.875rem}.noscript-note a{text-decoration:underline}[data-theme=dark] .color-pink{--accent:#ed6da6;--secondary:#50cdd7;--cover:#33212f}[data-theme=dark] .color-cyan{--accent:#62cfd9;--secondary:#e87fab;--cover:#1b3037}[data-theme=dark] .color-lilac{--accent:#b99ae6;--secondary:#ed8bb7;--cover:#2d263b}[data-theme=dark] .color-yellow{--accent:#dfc571;--secondary:#ee98bc;--cover:#342e24}[data-theme=dark] .project-cover:not(.has-image):not(.has-emoji){background-image:radial-gradient(#ffffff12 .04375em,#0000 .04375em)}@media (width>=112.5em){.site-shell{max-width:70rem}.profile{padding-top:2.4375rem}}@media (width<=67.5em){.site-shell{max-width:45rem;padding-inline:1.75rem}.section-heading{max-width:648px}.project-grid{--project-gap:22px;max-width:648px}.project-card{flex-basis:calc((100% - var(--project-gap)) / 2)}}@media (width<=43.5em){:root{font-size:100%}.hello-heart path{stroke-width:1.5px}}@media (width<=36.25em){.site-shell{padding-inline:1.4375rem}.site-header{height:4.9375rem}.blog-link{font-size:.8125rem}.profile{padding-top:1.6875rem}h1{font-size:3.0625rem}.profile-bio{font-size:.875rem}.social-links{gap:.4375rem}.social-links a{grid-template-columns:.9375rem auto;gap:.375rem;padding:.625rem .5rem;font-size:.75rem}.social-label{padding-inline:.65625rem}.social-arrow{display:none}.projects-section{padding-top:3.1875rem}.section-heading{max-width:360px;margin-bottom:1.375rem}h2{font-size:1.5625rem}.project-grid{--project-gap:23px;max-width:360px}.project-card{flex-basis:100%}.site-footer{gap:.875rem;margin-top:2.25rem;padding-block:1.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
