[data-theme=light]{--main-stroke: black;--main-background: white;--main-text: black;--selection-bg: #111111;--selection-text: #ffffff}[data-theme=dark]{--main-stroke: white;--main-background: black;--main-text: white;--selection-bg: #ffffff;--selection-text: #000000}:root{-webkit-user-select:none;user-select:none;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;text-decoration:inherit;cursor:pointer}a:hover{color:var(--main-text)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--main-background)}span,p{font-weight:500}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{margin:0 auto;padding:2rem;position:relative}.controls[data-v-388f052c]{position:fixed;bottom:10px;left:30px;right:30px;display:flex;justify-content:flex-start;color:var(--main-text);z-index:10}.settings-portal[data-v-388f052c]{position:fixed;bottom:10px;right:30px;z-index:14000}.control-item[data-v-388f052c]{display:flex;align-items:center;gap:8px;color:var(--main-text);cursor:pointer}.dropdown-item[data-v-388f052c]{color:var(--main-text)}.dropdown-portal[data-v-388f052c]{display:flex;flex-direction:column;gap:8px;z-index:14001;background:var(--main-background);border:2px solid var(--main-stroke);border-radius:10px;padding:6px 12px;width:fit-content;white-space:nowrap}canvas[data-v-5705959f]{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:auto;touch-action:none}.header[data-v-60d27254]{position:fixed;display:flex;flex-direction:column;align-items:center;top:40px;left:50%;transform:translate(-50%,-50%);min-width:300px;padding:20px}.header .content[data-v-60d27254]{display:flex;align-items:flex-start;color:var(--main-text);z-index:10;text-align:center}.header .content .logo[data-v-60d27254]{margin:5px;height:24px}.header .content .text[data-v-60d27254]{display:flex;flex-direction:column}.header .content .text .title[data-v-60d27254]{display:flex;gap:8px;align-items:center;font-size:22px}.header .content .text .email[data-v-60d27254]{margin-top:-5px;font-size:12px;font-weight:400}.navbar[data-v-32ce8a2e]{color:var(--main-text);position:fixed;top:100px;left:50%;transform:translate(-50%);min-width:300px;max-width:700px;width:90%;background-color:var(--main-background);border:2px solid var(--main-stroke);border-radius:10px;z-index:10;text-align:center}.navbar .content[data-v-32ce8a2e]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;width:100%}.navbar .links.desktop[data-v-32ce8a2e]{display:flex;gap:15px}.navbar .links.mobile[data-v-32ce8a2e]{display:none;flex-direction:column;gap:10px;position:fixed;top:60px;right:0;align-items:flex-start;background:var(--main-background);border:2px solid var(--main-stroke);border-radius:10px;padding:10px;width:fit-content}.navbar .hamburger[data-v-32ce8a2e]{position:fixed;right:0;margin:17px 10px;padding:0;display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--main-text)}.navbar .hamburger i[data-v-32ce8a2e]{font-size:20px}@media screen and (max-width:600px){.navbar[data-v-32ce8a2e]{background:transparent;border:none;z-index:200000;top:0}.links.desktop[data-v-32ce8a2e]{display:none!important}.hamburger[data-v-32ce8a2e]{display:block!important}.links.mobile[data-v-32ce8a2e]{display:flex!important}}.overlay-panel[data-v-563ffca3]{position:fixed;z-index:10999;background:var(--main-background);border:2px solid var(--main-stroke);border-radius:10px;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;overflow:hidden}.panel-header[data-v-563ffca3]{position:relative;display:flex;justify-content:flex-start;align-items:center;background:var(--main-background);color:var(--main-stroke);padding:6px 12px;cursor:grab;overflow:hidden}.menu[data-v-563ffca3]{display:flex;gap:8px;z-index:1}.title[data-v-563ffca3]{position:absolute;top:50%;transform:translateY(-50%);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-weight:700;pointer-events:none;font-size:14px;min-width:0}.share[data-v-563ffca3]{position:absolute;right:0;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:6px;padding-right:12px;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2}.copied-text[data-v-563ffca3]{font-size:14px;font-weight:700;color:var(--main-text);white-space:nowrap}.menu-item[data-v-563ffca3]{cursor:pointer}.content[data-v-563ffca3]{overflow-x:auto;flex:1;color:var(--main-text);margin-bottom:20px;min-height:50px;scrollbar-width:thick;scrollbar-color:var(--main-stroke) var(--main-background)}.resize-handle[data-v-563ffca3]{width:12px;height:12px;position:absolute;right:10px;bottom:15px;cursor:pointer;color:var(--main-text)}.resize-handle i[data-v-563ffca3]{display:inline-block;transform:scaleX(-1)}.more-to-come[data-v-563ffca3]{position:absolute;color:var(--main-text);font-size:14px;left:10px;bottom:5px}.iframe-panel[data-v-63834019]{border:none;width:100%;height:1000px}.iframe[data-v-4cbcde29]{height:95%}.project-panel[data-v-f6d77aa1]{padding:0 20px}.project-panel .heading[data-v-f6d77aa1]{display:flex;justify-content:space-between;align-items:center}.project-panel .heading h2[data-v-f6d77aa1]{margin:20px 0 0}.project-panel .meta[data-v-f6d77aa1]{margin-bottom:40px}.project-panel .meta-row[data-v-f6d77aa1]{display:grid;grid-template-columns:minmax(0,2fr) auto;align-items:start;column-gap:12px;font-size:14px}.project-panel .meta-row-date-only[data-v-f6d77aa1]{grid-template-columns:1fr}.project-panel .meta-left[data-v-f6d77aa1]{margin:0;max-width:66.666%;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.project-panel .meta-row span[data-v-f6d77aa1],.project-panel .meta-row p[data-v-f6d77aa1]{margin:0}.project-panel .meta-row .date[data-v-f6d77aa1]{justify-self:end;text-align:right}.project-panel .github-link[data-v-f6d77aa1]{display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer}.content[data-v-e96f1bc5]{display:flex;flex-direction:column;gap:15px;padding:20px;height:300px}img.picture[data-v-e96f1bc5]{align-self:flex-end;max-width:220px;border-radius:10px;width:auto;height:auto}.parent-container[data-v-e96f1bc5]{max-width:1000px;margin:0 auto}.social-sections[data-v-e96f1bc5]{margin-top:20px;display:flex;flex-direction:column;gap:10px}.social-section[data-v-e96f1bc5]{display:flex;align-items:flex-start;flex-wrap:wrap;column-gap:10px;row-gap:6px}.section-label[data-v-e96f1bc5]{font-weight:700}.social-row[data-v-e96f1bc5]{display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-width:0;flex:1 1 180px}.social-link[data-v-e96f1bc5]{display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:#000}.cv-row[data-v-e96f1bc5]{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.portfolio-top[data-v-44f92c67]{position:sticky;top:0;z-index:100;background:#fff}.separator[data-v-44f92c67]{height:2px;margin:0 10px;background:var(--main-stroke)}.portfolio-menu[data-v-44f92c67]{padding:5px 12px;display:flex;justify-content:flex-end;align-items:flex-start;background:var(--main-background);color:var(--main-text)}[data-pointer-cursor][data-v-44f92c67]{cursor:pointer}.portfolio-content[data-v-44f92c67]{padding:0 0 10px}.status[data-v-44f92c67]{display:block;padding:20px}.portfolio-section[data-v-44f92c67]{padding-bottom:20px}.section-title[data-v-44f92c67]{display:flex;align-items:center;gap:8px;margin:0 35px}.section-empty[data-v-44f92c67]{display:block;padding:0 20px}.projects[data-v-44f92c67]{display:grid;padding:0 20px;margin-top:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));justify-content:stretch;position:relative}.project-card[data-v-44f92c67]{background:var(--main-background);min-width:0}.projects:not(.list) .project-card[data-v-44f92c67]{border:2px solid black;border-radius:10px;padding:10px;box-sizing:border-box;width:100%}.projects:not(.list) .short[data-v-44f92c67]{margin-bottom:0}.project-image[data-v-44f92c67]{width:100%;aspect-ratio:11 / 8;height:auto;object-fit:cover;border-radius:8px;margin-bottom:8px;cursor:pointer}.short[data-v-44f92c67]{font-size:.9rem;opacity:.8;margin:0 0 15px;padding:0}.projects.list[data-v-44f92c67]{grid-template-columns:1fr;gap:20px}.projects.list .project-card[data-v-44f92c67]{display:flex;flex-direction:column;width:100%}.projects.list .date[data-v-44f92c67]{font-size:12px}.projects.list .title[data-v-44f92c67]{display:flex;justify-content:flex-start;cursor:pointer}.projects.list .title i[data-v-44f92c67]{margin-right:8px}.projects.list .meta-row[data-v-44f92c67]{display:grid;grid-template-columns:minmax(0,2fr) auto;align-items:start;column-gap:12px;font-size:12px;padding-left:20px;margin-bottom:0}.projects.list .meta-row-date-only[data-v-44f92c67]{grid-template-columns:1fr}.projects.list .meta-left[data-v-44f92c67]{margin:0;max-width:66.666%;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.projects.list .meta-left a[data-v-44f92c67],.projects.list .github-link[data-v-44f92c67]{cursor:pointer}.projects.list .meta-row span[data-v-44f92c67],.projects.list .meta-row p[data-v-44f92c67]{margin:0}.projects.list .meta-row .date[data-v-44f92c67]{justify-self:end;text-align:right}.projects.list .github-link[data-v-44f92c67]{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.projects.list .long[data-v-44f92c67]{margin-top:10px;margin-left:20px;margin-bottom:0;line-height:1.4;max-width:700px;word-wrap:break-word}.projects.list .list-gallery[data-v-44f92c67]{margin:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),max-content));gap:10px;justify-content:start}.projects.list .list-thumb[data-v-44f92c67]{width:100%;height:240px;max-width:300px;justify-self:start;object-fit:cover;border-radius:10px}.load-more-wrap[data-v-44f92c67]{margin:10px 20px 0}.load-more[data-v-44f92c67]{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--main-stroke);border-radius:6px;background:var(--main-background);color:var(--main-text);padding:8px 12px}.portfolio-top[data-v-5bc206ea]{position:sticky;top:0;z-index:100;background:#fff}.portfolio-top[data-v-5bc206ea]:after{content:"";display:block;background:var(--main-background)}.separator[data-v-5bc206ea]{height:2px;margin:0 10px;background:var(--main-stroke)}.blog[data-v-5bc206ea]{padding-top:10px}[data-pointer-cursor][data-v-5bc206ea]{cursor:pointer}.status[data-v-5bc206ea]{display:block;padding:20px}.posts[data-v-5bc206ea]{display:grid;padding:0 20px;margin-top:20px;gap:0px;grid-template-columns:repeat(auto-fill,240px);justify-content:start;position:relative}.post-card[data-v-5bc206ea]{background:var(--main-background);width:220px}.posts.list[data-v-5bc206ea]{grid-template-columns:1fr;gap:20px}.posts.list .post-card[data-v-5bc206ea]{display:flex;flex-direction:column;width:100%}.posts.list .date[data-v-5bc206ea]{font-size:12px}.posts.list .title[data-v-5bc206ea]{display:flex;justify-content:flex-start;cursor:pointer}.posts.list .title i[data-v-5bc206ea]{margin-right:8px}.posts.list .meta-row[data-v-5bc206ea]{display:grid;grid-template-columns:minmax(0,2fr) auto;align-items:start;column-gap:12px;font-size:12px;padding-left:20px;margin-bottom:0}.posts.list .meta-row-date-only[data-v-5bc206ea]{grid-template-columns:1fr}.posts.list .meta-left[data-v-5bc206ea]{margin:0;max-width:66.666%;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.posts.list .meta-left a[data-v-5bc206ea],.posts.list .github-link[data-v-5bc206ea]{cursor:pointer}.posts.list .meta-row span[data-v-5bc206ea],.posts.list .meta-row p[data-v-5bc206ea]{margin:0}.posts.list .meta-row .date[data-v-5bc206ea]{justify-self:end;text-align:right}.posts.list .github-link[data-v-5bc206ea]{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.posts.list .long[data-v-5bc206ea]{margin-top:10px;margin-left:20px;margin-bottom:0;line-height:1.4;max-width:700px;word-wrap:break-word}.posts.list .list-gallery[data-v-5bc206ea]{margin:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),max-content));gap:10px;justify-content:start}.posts.list .list-thumb[data-v-5bc206ea]{width:100%;height:240px;max-width:300px;justify-self:start;object-fit:cover;border-radius:10px}.content[data-v-dab3fe54]{display:flex;gap:15px;padding:20px;flex-direction:column;height:300px;position:relative}.content img[data-v-dab3fe54]{align-self:flex-end;max-width:220px;border-radius:10px;width:auto;height:auto}.content .entry .title[data-v-dab3fe54]{display:flex;gap:8px;align-items:center}.content .description[data-v-dab3fe54]{margin:0;padding:0}.content .welcome-social-overlay[data-v-dab3fe54]{position:sticky;bottom:0;z-index:20;margin-top:auto;width:100%;box-sizing:border-box;padding:8px 20px 10px;background:#fff}.content .welcome-social-row[data-v-dab3fe54]{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.content .social-link[data-v-dab3fe54]{display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:#000}.app{background:var(--main-background)}body.custom-cursor-enabled,body.custom-cursor-enabled *{cursor:none!important}body.custom-cursor-enabled ::-webkit-scrollbar,body.custom-cursor-enabled ::-webkit-scrollbar-thumb,body.custom-cursor-enabled ::-webkit-scrollbar-track,body.custom-cursor-enabled ::-webkit-scrollbar-corner{cursor:none!important}.custom-cursor{--cursor-color: #000;--cursor-size: 23px;--cursor-dot-ratio: .36;--cursor-shift-y: 0px;--cursor-scale: 1;position:fixed;left:0;top:0;width:var(--cursor-size);height:var(--cursor-size);transform:translate(-50%,calc(-50% + var(--cursor-shift-y))) scale(var(--cursor-scale));pointer-events:none;z-index:2147483647;overflow:visible;transition:transform .14s ease-out,width .14s ease-out,height .14s ease-out}.custom-cursor.on-dark-bg{--cursor-color: #fff}.custom-cursor-arrow{position:absolute;left:50%;bottom:8px;width:18px;height:28px;z-index:1;opacity:0;transform:translate(-50%,7px) scaleY(.6);transform-origin:bottom center;transition:opacity .14s ease-out,transform .14s ease-out}.custom-cursor-arrow path{fill:var(--cursor-color);stroke:transparent;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:2;vector-effect:non-scaling-stroke}.custom-cursor-ring{position:absolute;inset:0;border:2px solid var(--cursor-color);border-radius:50%;background:transparent;z-index:2}.custom-cursor-dot{position:absolute;left:50%;top:50%;width:calc(var(--cursor-size) * var(--cursor-dot-ratio));height:calc(var(--cursor-size) * var(--cursor-dot-ratio));border-radius:50%;background:var(--cursor-color);z-index:3;opacity:0;transform:translate(-50%,-50%) scale(.2);transition:opacity 90ms ease-out,transform 90ms ease-out,width .14s ease-out,height .14s ease-out}.custom-cursor.active{--cursor-scale: 1}.custom-cursor.active .custom-cursor-dot{opacity:1;transform:translate(-50%,-50%) scale(1)}.custom-cursor.pointer{--cursor-size: 18px;--cursor-shift-y: 22px}.custom-cursor.pointer .custom-cursor-arrow{opacity:1;transform:translate(-50%,4px) scaleY(1)}.overlay-panel .content,.overlay-panel .content *{user-select:text;-webkit-user-select:text}.overlay-panel .content ::selection{background:var(--selection-bg);color:var(--selection-text)}.overlay-panel .content ::-moz-selection{background:var(--selection-bg);color:var(--selection-text)}
