:root{--bg:#0a0a0c;--frame:#111115;--card:#17171c;--line:#ffffff14;--line2:#ffffff24;--text:#ededf0;--muted:#9b9ba8;--blue:#0d99ff;--labo:#60a5fa;--sans:"Inter Tight", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--bg-soft:var(--frame);--bg-card:var(--card);--bg-card-hover:#1d1d23;--text-muted:var(--muted);--text-soft:#6c6c78;--border:var(--line2);--accent-border:#0d99ff66;--shadow:0 30px 90px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font:400 15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box;margin:0}body{background-color:var(--bg);background-image:radial-gradient(circle,#ffffff1c 1px,#0000 1.4px);background-size:24px 24px;min-height:100vh}::selection{color:#fff;background:var(--blue)}a{color:inherit;text-decoration:none}img,svg{max-width:100%}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}.btn{border:1px solid var(--line2);background:var(--card);color:var(--text);font:600 14px/1.2 var(--sans);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;transition:border-color .15s,background .15s,transform .15s;display:inline-flex}.btn:hover{border-color:#ffffff4d;transform:translateY(-1px)}.btn.is-primary{border-color:var(--blue);background:var(--blue);color:#fff}.tags{flex-wrap:wrap;gap:6px;padding:0;list-style:none;display:flex}.tags>*{border:1px solid var(--line2);color:var(--muted);font:500 12px/1.3 var(--mono);border-radius:6px;padding:4px 9px}.frame{border:1px solid var(--line);background:var(--frame);border-radius:20px;padding:clamp(22px,4vw,36px);position:relative}.frame-label{color:var(--muted);font:500 13px/1 var(--mono);margin-bottom:14px;display:block}.frame-label:before{content:"# ";opacity:.6}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal;animation-timeline:view();animation-range:entry entry 40%}}}@keyframes reveal{0%{opacity:0;transform:translateY(40px)}}body.is-lab{background:#000}#tarteaucitronRoot *{color:var(--text-muted)!important}#tarteaucitronRoot #tarteaucitronAlertBig{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--bg-card-hover)!important;border-top:1px solid var(--border)!important;box-shadow:var(--shadow)!important;color:var(--text-muted)!important;font-family:inherit!important}#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert,#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong,#tarteaucitronAlertBig .tarteaucitronPartnersList,#tarteaucitronAlertBig .tarteaucitronPartnersList *{color:var(--text)!important}#tarteaucitronAlertBig div.tarteaucitronPartnersList{background:var(--bg-soft)!important}#tarteaucitronAlertBig .tarteaucitronCTAButton,#tarteaucitronAlertBig #tarteaucitronPersonalize,#tarteaucitronAlertBig #tarteaucitronCloseAlert{text-transform:none;transition:transform .2s,filter .2s;border-radius:999px!important;padding:10px 18px!important;font-size:14px!important;font-weight:800!important}#tarteaucitronAlertBig .tarteaucitronCTAButton.tarteaucitronAllow{color:#fff!important;border:1px solid var(--accent-border)!important;background:linear-gradient(#0d99fff2,#0d99ffcc)!important}#tarteaucitronAlertBig .tarteaucitronCTAButton.tarteaucitronDeny{color:var(--text-muted)!important;border:1px solid var(--border)!important;background:0 0!important}#tarteaucitronAlertBig #tarteaucitronPersonalize,#tarteaucitronAlertBig #tarteaucitronCloseAlert{text-underline-offset:3px;text-decoration:underline;color:var(--text-soft)!important;background:0 0!important;border:1px solid #0000!important}#tarteaucitronAlertBig .tarteaucitronCTAButton:hover,#tarteaucitronAlertBig #tarteaucitronPersonalize:hover,#tarteaucitronAlertBig #tarteaucitronCloseAlert:hover{filter:brightness(1.15);transform:translateY(-1px)}#tarteaucitronAlertBig #tarteaucitronPrivacyUrl,#tarteaucitronAlertBig #tarteaucitronPrivacyUrlDialog{text-underline-offset:3px;text-decoration:underline;color:var(--text-soft)!important;background:0 0!important}#tarteaucitronIcon #tarteaucitronManager{filter:drop-shadow(0 8px 24px #0006)}#tarteaucitronAlertSmall{background:var(--bg-card-hover)!important;color:var(--text)!important;border:1px solid var(--border)!important;box-shadow:var(--shadow)!important}#tarteaucitron,div#tarteaucitronServices{background:var(--bg-soft)!important;color:var(--text)!important;border:1px solid var(--border)!important}#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine,#tarteaucitron #tarteaucitronInfo,#tarteaucitron #tarteaucitronServices .tarteaucitronTitle,#tarteaucitron #tarteaucitronServices .tarteaucitronTitle button,#tarteaucitron #tarteaucitronClosePanel{background:var(--bg-card)!important;color:var(--text)!important}#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName a,#tarteaucitron #tarteaucitronServices .tarteaucitronDetails,#tarteaucitronRoot .asCatToggleBtn{color:var(--text)!important}#tarteaucitron #tarteaucitronPrivacyUrl,#tarteaucitron #tarteaucitronPrivacyUrlDialog{color:var(--text-muted)!important;border:1px solid var(--border)!important;background:0 0!important;border-radius:999px!important}#tarteaucitron #tarteaucitronServices .tarteaucitronLine{background:var(--bg-card)!important;border-bottom:1px solid var(--border)!important}#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronDetails,#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName,#tarteaucitron #tarteaucitronServices .tarteaucitronLine .tarteaucitronName a{color:var(--text-muted)!important}#tarteaucitron .tarteaucitronBorder,#tarteaucitron .tarteaucitronBorder ul{background:0 0!important}#tarteaucitron .tacCurrentStatus,#tarteaucitron .tarteaucitronReadmoreSeparator,#tarteaucitron .tarteaucitronReadmoreInfo,#tarteaucitron .tarteaucitronReadmoreOfficial{color:var(--text-soft)!important}#tarteaucitron #tarteaucitronServices .tarteaucitronAsk button{color:var(--text-muted)!important;border:1px solid var(--border)!important;opacity:1!important;background:0 0!important;border-radius:999px!important;font-weight:700!important}#tarteaucitron #tarteaucitronServices .tarteaucitronAllow.tarteaucitronIsSelected,#tarteaucitron #tarteaucitronServices #tarteaucitronAllAllowed.tarteaucitronIsSelected{color:#fff!important;border-color:var(--accent-border)!important;background:linear-gradient(#0d99fff2,#0d99ffcc)!important}#tarteaucitron #tarteaucitronServices .tarteaucitronDeny.tarteaucitronIsSelected,#tarteaucitron #tarteaucitronServices #tarteaucitronAllDenied.tarteaucitronIsSelected{background:var(--bg-card-hover)!important;color:var(--text)!important;border-color:var(--border)!important}html body #tarteaucitronRoot div#tarteaucitronSave{background:var(--bg-soft)!important}html body #tarteaucitronRoot button#tarteaucitronSaveButton{color:#fff!important;border:1px solid var(--accent-border)!important;background:linear-gradient(#0d99fff2,#0d99ffcc)!important;border-radius:999px!important;font-weight:800!important}@media (width<=900px){#tarteaucitronAlertBig .tarteaucitronCTAButton,#tarteaucitronAlertBig #tarteaucitronPersonalize,#tarteaucitronAlertBig #tarteaucitronCloseAlert{margin:4px!important}}.cv-root[data-v-9d2d56cc]{--bg:#0a0a0c;--frame:#111115;--card:#17171c;--line:#ffffff14;--line2:#ffffff24;--text:#ededf0;--muted:#9b9ba8;--blue:#0d99ff;--sans:"Inter Tight", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;background:var(--bg);color:var(--text);font:400 15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;position:fixed;inset:0;overflow:hidden}.cv-root.is-list[data-v-9d2d56cc]{overflow-y:auto}.cv-root button[data-v-9d2d56cc]{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.cv-skip[data-v-9d2d56cc]{z-index:50;background:var(--blue);color:#fff;border-radius:10px;padding:10px 16px;font-weight:600;position:fixed;top:8px;left:50%;transform:translate(-50%,-200%)}.cv-skip[data-v-9d2d56cc]:focus{transform:translate(-50%)}.cv-viewport[data-v-9d2d56cc]{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background-color:var(--bg);background-image:radial-gradient(circle,#ffffff21 1px,#0000 1.4px);position:absolute;inset:0;overflow:clip}.cv-viewport.is-grabbing[data-v-9d2d56cc],.cv-viewport.is-grabbing[data-v-9d2d56cc] *{cursor:grabbing!important}.cv-world[data-v-9d2d56cc]{transform-origin:0 0;width:0;height:0;position:absolute;top:0;left:0}.cv-world[data-v-9d2d56cc]>*{position:absolute}.cv-frame[data-v-9d2d56cc]{z-index:2;background:var(--frame);border:1px solid var(--line);border-radius:20px;padding:36px}.cv-container[data-v-9d2d56cc]{z-index:0;background:#ffffff05;border:1px dashed #ffffff17;border-radius:28px}.cv-frame-label[data-v-9d2d56cc]{font:500 15px/1 var(--mono);color:var(--muted);white-space:nowrap;position:absolute;top:-34px;left:4px}.cv-frame-label i[data-v-9d2d56cc]{opacity:.6;margin-right:4px;font-style:normal}.cv-frame[data-v-9d2d56cc]:focus-visible,.cv-card[data-v-9d2d56cc]:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.cv-identity[data-v-9d2d56cc]{background:radial-gradient(120% 90% at 100% 0%, #0d99ff29, transparent 55%), radial-gradient(90% 80% at 0% 100%, #a78bfa1f, transparent 60%), var(--frame);border-color:#0d99ff59;padding:44px 48px;box-shadow:0 0 0 1px #0d99ff14,0 40px 120px -40px #0d99ff59}.cv-status[data-v-9d2d56cc]{border:1px solid var(--line2);font:500 12px/1 var(--mono);color:#c9f7df;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 10px;display:inline-flex}.cv-status span[data-v-9d2d56cc]{background:#34d399;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #34d3992e}.cv-name[data-v-9d2d56cc]{font:800 76px/.95 var(--sans);letter-spacing:-.045em;background:linear-gradient(100deg,#fff 30%,#9fd6ff 70%,#c4b5fd);color:#0000;-webkit-background-clip:text;background-clip:text;margin-top:18px}.cv-role[data-v-9d2d56cc]{font:600 24px/1.25 var(--sans);letter-spacing:-.02em;margin-top:10px}.cv-role em[data-v-9d2d56cc]{color:var(--blue);font-style:normal}.cv-lead[data-v-9d2d56cc]{font:400 18px/1.55 var(--sans);color:#c4c4cf;max-width:560px;margin-top:16px}.cv-stats[data-v-9d2d56cc]{gap:28px;margin-top:26px;display:flex}.cv-stats div[data-v-9d2d56cc]{border-top:1px solid var(--line2);flex:1;padding-top:10px}.cv-stats dt[data-v-9d2d56cc]{font:700 32px/1 var(--sans);letter-spacing:-.03em}.cv-stats dd[data-v-9d2d56cc]{font:400 13px/1.35 var(--sans);color:var(--muted);margin:4px 0 0}.cv-cta[data-v-9d2d56cc]{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.cv-btn[data-v-9d2d56cc]{border-radius:10px;align-items:center;gap:6px;padding:11px 18px;transition:background .2s,transform .2s;display:inline-flex;border:1px solid var(--line2)!important;font:600 14px/1 var(--sans)!important;background:#ffffff0a!important}.cv-btn[data-v-9d2d56cc]:hover{background:#ffffff1a!important}.cv-btn.is-primary[data-v-9d2d56cc]{background:var(--blue)!important;border-color:var(--blue)!important;color:#fff!important}.cv-btn.is-primary[data-v-9d2d56cc]:hover{background:#2aa7ff!important}.cv-btn.is-ghost[data-v-9d2d56cc]{background:0 0!important}.cv-about p[data-v-9d2d56cc]{font:500 24px/1.4 var(--sans);letter-spacing:-.015em}.cv-skills ul[data-v-9d2d56cc]{grid-template-columns:repeat(4,1fr);gap:18px;margin:18px 0 0;padding:0;list-style:none;display:grid}.cv-skills-legend[data-v-9d2d56cc]{font:500 12px/1 var(--mono);color:var(--muted);gap:16px;display:flex}.cv-skills-legend span[data-v-9d2d56cc]:before{content:"";vertical-align:-1px;background:#fde68a;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.cv-skills-legend .is-tool[data-v-9d2d56cc]:before{background:#bae6fd}.cv-sticky[data-v-9d2d56cc]{color:#2b2306;height:100px;font:600 16px/1.25 var(--sans);transform:rotate(var(--r));background:#fde68a;border-radius:4px 4px 14px;padding:14px;transition:transform .25s;box-shadow:0 14px 24px -12px #000000b3}.cv-sticky.is-tool[data-v-9d2d56cc]{color:#082231;background:#bae6fd}.cv-sticky[data-v-9d2d56cc]:hover{transform:rotate(0)scale(1.06)}.cv-ribbon[data-v-9d2d56cc]{z-index:1;background:linear-gradient(90deg, var(--blue), #a78bfa 50%, #34d399);border-radius:2px;height:2px}.cv-tick[data-v-9d2d56cc]{font:500 13px/1 var(--mono);color:var(--muted);position:absolute;top:-30px;transform:translate(-50%)}.cv-tick[data-v-9d2d56cc]:after{content:"";background:#ffffff4d;width:1px;height:14px;position:absolute;top:22px;left:50%}.cv-now[data-v-9d2d56cc]{background:#34d399;border-radius:50%;width:12px;height:12px;margin-left:-6px;animation:2s infinite cv-pulse-9d2d56cc;position:absolute;top:-5px;box-shadow:0 0 0 6px #34d39933}.cv-now b[data-v-9d2d56cc]{color:#052e1c;font:600 11px/1 var(--mono);white-space:nowrap;background:#34d399;border-radius:6px;padding:4px 8px;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}@keyframes cv-pulse-9d2d56cc{50%{box-shadow:0 0 0 12px #34d39900}}.cv-bar[data-v-9d2d56cc]{z-index:3;background:color-mix(in srgb, var(--c) 22%, #0a0a0c);border:1px solid color-mix(in srgb, var(--c) 60%, transparent);color:var(--c);font:600 12px/22px var(--mono);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:7px;padding:0 10px;transition:background .2s,box-shadow .2s;overflow:hidden}.cv-bar.is-on[data-v-9d2d56cc]{background:var(--c);color:#0a0a0c;box-shadow:0 0 24px -2px var(--c)}.cv-links[data-v-9d2d56cc]{z-index:1;pointer-events:none;overflow:visible}.cv-links g[data-v-9d2d56cc]{transition:opacity .25s}.cv-links.has-hover g[data-v-9d2d56cc]:not(.is-on){opacity:.12}.cv-link-bg[data-v-9d2d56cc]{fill:none;stroke:var(--lc);stroke-opacity:.12;stroke-width:6px}.cv-link[data-v-9d2d56cc]{fill:none;stroke:var(--lc);stroke-opacity:.7;stroke-width:2px;stroke-dasharray:7 9;animation:1.1s linear infinite cv-flow-9d2d56cc}.cv-links g.is-on .cv-link[data-v-9d2d56cc]{stroke-opacity:1;stroke-width:3px;animation-duration:.5s}.cv-link-dot[data-v-9d2d56cc]{fill:var(--bg);stroke:var(--lc);stroke-width:2px}@keyframes cv-flow-9d2d56cc{to{stroke-dashoffset:-16px}}.cv-card[data-v-9d2d56cc]{z-index:2;text-align:left;border-radius:16px;flex-direction:column;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s;box-shadow:inset 0 2px #ffffff08;background:var(--card)!important;border:1px solid var(--line2)!important;padding:0!important;display:flex!important}.cv-card[data-v-9d2d56cc]:hover,.cv-card.is-related[data-v-9d2d56cc]{box-shadow:0 30px 60px -20px #000c, 0 0 0 1px color-mix(in srgb, var(--c) 40%, transparent), 0 20px 60px -30px var(--c);z-index:4;transform:translateY(-6px);border-color:color-mix(in srgb, var(--c) 70%, transparent)!important}.cv-card.is-selected[data-v-9d2d56cc]{box-shadow:0 0 0 2px var(--blue), 0 30px 80px -30px #0d99ff99;border-color:var(--blue)!important}.cv-card.is-pointed[data-v-9d2d56cc]:after{content:"";border:2px solid var(--pc);pointer-events:none;border-radius:21px;position:absolute;inset:-7px}.cv-pointed-tag[data-v-9d2d56cc]{background:var(--pc);color:#111;font:600 12px/1 var(--sans);border-radius:6px 6px 0;padding:4px 8px;position:absolute;top:-30px;right:-7px}.cv-dims[data-v-9d2d56cc]{background:var(--blue);color:#fff;font:500 11px/1.2 var(--mono);border-radius:5px;padding:3px 7px;position:absolute;bottom:-30px;left:50%;transform:translate(-50%)}.cv-visual[data-v-9d2d56cc]{border-bottom:1px solid var(--line);border-radius:15px 15px 0 0;height:150px;display:block;overflow:hidden}.cv-visual[data-v-9d2d56cc] .cv-art,.cv-visual[data-v-9d2d56cc] .cv-shot{object-fit:cover;width:100%;height:100%;display:block}[data-v-9d2d56cc] .cv-art-letter{font:800 64px/1 var(--sans);fill:#ffffff1a}.cv-card-body[data-v-9d2d56cc]{flex-direction:column;flex:1;gap:6px;min-height:0;padding:14px 16px 16px;display:flex}.cv-card-title[data-v-9d2d56cc]{font:700 19px/1.15 var(--sans);letter-spacing:-.02em}.cv-card-desc[data-v-9d2d56cc]{-webkit-line-clamp:3;color:var(--muted);font:400 14px/1.45 var(--sans);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.is-exp .cv-card-desc[data-v-9d2d56cc]{-webkit-line-clamp:5}.cv-card-desc.is-short[data-v-9d2d56cc]{-webkit-line-clamp:2;font-size:13px}.cv-tags[data-v-9d2d56cc]{flex-wrap:wrap;gap:5px;margin-top:auto;display:flex}.cv-tags span[data-v-9d2d56cc]{font:500 11px/1 var(--mono);color:#c7c7d2;background:#ffffff0f;border-radius:6px;padding:4px 8px}.is-exp[data-v-9d2d56cc]{gap:8px;background:linear-gradient(180deg, color-mix(in srgb, var(--c) 12%, transparent), transparent 45%), var(--card)!important;padding:22px!important}.cv-exp-top[data-v-9d2d56cc]{font:500 12px/1 var(--mono);color:var(--c);align-items:center;gap:8px;display:flex}.cv-exp-top i[data-v-9d2d56cc]{background:var(--c);border-radius:3px;width:9px;height:9px}.cv-exp-company[data-v-9d2d56cc]{font:800 30px/1 var(--sans);letter-spacing:-.03em;margin-top:6px}.cv-exp-role[data-v-9d2d56cc]{font:600 15px/1.3 var(--sans);color:#d4d4dc}.cv-card-foot[data-v-9d2d56cc]{border-top:1px solid var(--line);font:500 12px/1 var(--mono);color:var(--muted);justify-content:space-between;padding-top:10px;display:flex}.cv-card-foot b[data-v-9d2d56cc]{color:var(--c)}.cv-contact[data-v-9d2d56cc]{background:radial-gradient(100% 70% at 100% 100%, #34d39929, transparent 60%), var(--frame);border-color:#34d39959;flex-direction:column;display:flex}.cv-contact-kicker[data-v-9d2d56cc]{font:500 12px/1 var(--mono);color:#34d399;text-transform:uppercase;letter-spacing:.1em}.cv-contact h2[data-v-9d2d56cc]{font:800 34px/1.05 var(--sans);letter-spacing:-.03em;margin-top:12px}.cv-mail[data-v-9d2d56cc]{font:600 22px/1.2 var(--sans);color:#6ee7b7;border-bottom:1px solid;align-self:flex-start;margin-top:18px}.cv-contact ul[data-v-9d2d56cc]{margin:20px 0 0;padding:0;list-style:none}.cv-contact li a[data-v-9d2d56cc]{border-top:1px solid var(--line);font:500 15px/1.3 var(--sans);gap:12px;padding:10px 0;display:flex}.cv-contact li a span[data-v-9d2d56cc]{width:70px;color:var(--muted);font:500 12px/1.6 var(--mono)}.cv-contact li a b[data-v-9d2d56cc]{color:var(--muted);margin-left:auto}.cv-contact li a:hover b[data-v-9d2d56cc]{color:#6ee7b7}.cv-legal[data-v-9d2d56cc]{font:500 12px/1 var(--mono);color:var(--muted);align-self:flex-start;margin-top:auto;text-decoration:underline!important}.cv-cursors[data-v-9d2d56cc]{z-index:6;pointer-events:none;top:0;left:0}.cv-cursor[data-v-9d2d56cc]{position:absolute;top:0;left:0}.cv-cursor-inner[data-v-9d2d56cc]{transform:scale(var(--inv,1));transform-origin:0 0;position:relative}.cv-cursor-inner svg[data-v-9d2d56cc]{filter:drop-shadow(0 2px 4px #00000080);display:block}.cv-cursor-tag[data-v-9d2d56cc],.cv-cursor-say[data-v-9d2d56cc]{background:var(--c);color:#111;font:600 12px/1.2 var(--sans);white-space:nowrap;border-radius:4px 8px 8px;padding:4px 8px;position:absolute;top:18px;left:16px}.cv-cursor-say[data-v-9d2d56cc]{color:#111;background:#fff;font-weight:500;animation:.3s cubic-bezier(.3,1.6,.5,1) cv-pop-9d2d56cc;top:42px;box-shadow:0 8px 20px #0006}@keyframes cv-pop-9d2d56cc{0%{opacity:0;transform:scale(.6)}}.cv-topbar[data-v-9d2d56cc]{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:fixed;top:12px;left:12px;right:12px}.cv-topbar[data-v-9d2d56cc]>*{pointer-events:auto}.cv-file[data-v-9d2d56cc],.cv-tools[data-v-9d2d56cc],.cv-layers[data-v-9d2d56cc],.cv-mini[data-v-9d2d56cc],.cv-hint[data-v-9d2d56cc],.cv-list-bar[data-v-9d2d56cc]{-webkit-backdrop-filter:blur(14px);border:1px solid var(--line2);background:#16161bd1;border-radius:12px;box-shadow:0 12px 40px -12px #000000b3}.cv-file[data-v-9d2d56cc]{align-items:center;gap:10px;min-width:0;height:44px;padding:0 14px 0 11px;display:flex}.cv-file-name[data-v-9d2d56cc]{font:600 14px/1 var(--sans);white-space:nowrap}.cv-file-name span[data-v-9d2d56cc]{color:var(--muted);font-weight:400}.cv-file-meta[data-v-9d2d56cc]{border-left:1px solid var(--line2);font:400 12px/1 var(--mono);color:var(--muted);white-space:nowrap;padding-left:10px}.cv-tools[data-v-9d2d56cc]{align-items:center;gap:6px;height:44px;padding:0 5px 0 10px;display:flex}.cv-faces[data-v-9d2d56cc]{border-right:1px solid var(--line2);margin-right:2px;padding-right:8px;display:flex}.cv-faces span[data-v-9d2d56cc]{color:#111;width:26px;height:26px;font:700 11px/1 var(--sans);border:2px solid #16161b;border-radius:50%;place-items:center;margin-left:-6px;display:grid}.cv-faces .is-me[data-v-9d2d56cc]{background:var(--blue);color:#fff}.cv-zoom[data-v-9d2d56cc]{align-items:center;display:flex}.cv-zoom button[data-v-9d2d56cc]{min-width:30px;height:32px;font:500 16px/1 var(--sans);color:#d4d4dc;border-radius:8px;place-items:center;display:grid}.cv-zoom button[data-v-9d2d56cc]:hover,.cv-zoom button[data-v-9d2d56cc]:focus-visible{background:#ffffff14}.cv-zoom .cv-zoom-val[data-v-9d2d56cc]{min-width:52px;font:500 12px/1 var(--mono)}.cv-listbtn[data-v-9d2d56cc]{white-space:nowrap;border-radius:8px;height:32px;background:var(--blue)!important;color:#fff!important;font:600 13px/1 var(--sans)!important;padding:0 12px!important}.cv-root[data-v-9d2d56cc] :focus-visible{outline:2px solid var(--blue);outline-offset:2px}.cv-hint[data-v-9d2d56cc]{z-index:19;font:400 12px/1 var(--sans);color:var(--muted);white-space:nowrap;align-items:center;gap:6px;padding:7px 12px;transition:opacity .5s,transform .5s;display:flex;position:fixed;top:68px;left:50%;transform:translate(-50%)}.cv-hint.is-hidden[data-v-9d2d56cc]{opacity:0;pointer-events:none;transform:translate(-50%,-10px)}.cv-hint kbd[data-v-9d2d56cc]{border:1px solid var(--line2);font:500 11px/1 var(--mono);color:var(--text);background:#ffffff14;border-radius:5px;margin-left:6px;padding:3px 6px}.cv-layers[data-v-9d2d56cc]{scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;z-index:18;width:236px;max-height:calc(100vh - 150px);padding:6px;position:fixed;top:68px;left:12px;overflow-y:auto}.cv-layers-head[data-v-9d2d56cc]{text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;width:100%;display:flex;font:600 12px/1 var(--mono)!important;color:var(--muted)!important;padding:8px 10px!important}.cv-layers ul[data-v-9d2d56cc]{margin:2px 0 0;padding:0;list-style:none}.cv-layers li button[data-v-9d2d56cc]{width:100%;font:400 13px/1.2 var(--sans);color:#c9c9d3;text-align:left;white-space:nowrap;text-overflow:ellipsis;border-radius:7px;align-items:center;gap:8px;padding:7px 10px;display:flex;overflow:hidden}.cv-layers li button.is-frame[data-v-9d2d56cc]{color:var(--text);font-weight:600}.cv-layers li button i[data-v-9d2d56cc]{width:12px;color:var(--c);flex:none;font-size:11px;font-style:normal}.cv-layers li button[data-v-9d2d56cc]:hover{background:#ffffff0f}.cv-layers li button.is-active[data-v-9d2d56cc]{color:#fff;background:#0d99ff33}.cv-mini[data-v-9d2d56cc]{z-index:18;padding:8px;position:fixed;bottom:12px;right:12px}.cv-mini svg[data-v-9d2d56cc]{cursor:crosshair;touch-action:none;display:block}.cv-mini-frame[data-v-9d2d56cc]{fill:#ffffff08;stroke:#ffffff26;stroke-width:10px}.cv-mini-card[data-v-9d2d56cc]{fill:#ffffff40}.cv-mini-view[data-v-9d2d56cc]{fill:#0d99ff1f;stroke:var(--blue);stroke-width:1.5px;vector-effect:non-scaling-stroke}.cv-panel[data-v-9d2d56cc]{z-index:30;-webkit-backdrop-filter:blur(18px);border:1px solid var(--line2);background:#121216f0;border-radius:16px;flex-direction:column;width:400px;display:flex;position:fixed;top:68px;bottom:12px;right:12px;overflow:hidden;box-shadow:0 30px 80px -20px #000c}.cv-panel-bar[data-v-9d2d56cc]{border-bottom:1px solid var(--line);font:500 12px/1 var(--mono);color:var(--c);justify-content:space-between;align-items:center;padding:10px 10px 10px 16px;display:flex}.cv-panel-bar button[data-v-9d2d56cc]{width:30px;height:30px;color:var(--muted);border-radius:8px}.cv-panel-bar button[data-v-9d2d56cc]:hover{color:#fff;background:#ffffff14}.cv-panel-body[data-v-9d2d56cc]{overscroll-behavior:contain;padding:20px 22px 28px;overflow-y:auto}.cv-panel-body h2[data-v-9d2d56cc]{font:800 30px/1.05 var(--sans);letter-spacing:-.03em;outline:none}.cv-panel-body h3[data-v-9d2d56cc]{font:600 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--c);margin:22px 0 6px}.cv-panel-body p[data-v-9d2d56cc]{color:#c9c9d3;margin-top:10px}.cv-panel-body .cv-tags[data-v-9d2d56cc]{margin-top:14px}.cv-panel-kicker[data-v-9d2d56cc]{font:500 12px/1 var(--mono);color:var(--c)!important;margin:0 0 10px!important}.cv-panel-sub[data-v-9d2d56cc]{font:500 16px/1.4 var(--sans);color:var(--text)!important;margin-top:8px!important}.cv-panel-visual[data-v-9d2d56cc]{border:1px solid var(--line);border-radius:12px;height:170px;margin:-4px 0 18px;overflow:hidden}.cv-panel-visual[data-v-9d2d56cc] svg,.cv-panel-visual[data-v-9d2d56cc] img{object-fit:cover;width:100%;height:100%;display:block}.cv-panel-list[data-v-9d2d56cc]{color:#c9c9d3;padding-left:18px}.cv-panel-list li[data-v-9d2d56cc]{margin-top:6px}.cv-panel-list li[data-v-9d2d56cc]::marker{color:var(--c)}.cv-panel-links[data-v-9d2d56cc]{padding:0;list-style:none}.cv-panel-links button[data-v-9d2d56cc]{text-align:left;justify-content:space-between;width:100%;display:flex;border-top:1px solid var(--line)!important;padding:12px 0!important;font-weight:600!important}.cv-panel-links b[data-v-9d2d56cc]{color:var(--c)}.cv-panel-cta[data-v-9d2d56cc]{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.cv-panel-enter-active[data-v-9d2d56cc],.cv-panel-leave-active[data-v-9d2d56cc]{transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s}.cv-panel-enter-from[data-v-9d2d56cc],.cv-panel-leave-to[data-v-9d2d56cc]{opacity:0;transform:translate(30px)}.cv-list[data-v-9d2d56cc]{background-image:radial-gradient(circle,#ffffff14 1px,#0000 1.4px);background-size:24px 24px;max-width:780px;margin:0 auto;padding:96px 20px 120px}.cv-list-bar[data-v-9d2d56cc]{z-index:20;justify-content:space-between;align-items:center;width:min(780px,100vw - 24px);padding:6px 6px 6px 14px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}.cv-list-hero .cv-name[data-v-9d2d56cc],.cv-list-hero h1[data-v-9d2d56cc]{font:800 clamp(44px, 11vw, 76px) / .95 var(--sans);letter-spacing:-.045em;outline:none;margin-top:18px}.cv-list section[data-v-9d2d56cc]{margin-top:64px}.cv-list h2[data-v-9d2d56cc]{font:600 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--blue);margin-bottom:18px}.cv-list section>p[data-v-9d2d56cc]{font:500 clamp(18px, 4vw, 22px) / 1.45 var(--sans)}.cv-list .cv-stats[data-v-9d2d56cc]{flex-wrap:wrap}.cv-list-exps[data-v-9d2d56cc]{padding:0;list-style:none}.cv-list-exps>li[data-v-9d2d56cc]{border-left:2px solid color-mix(in srgb, var(--c) 60%, transparent);padding:0 0 36px 22px;position:relative}.cv-list-exps>li[data-v-9d2d56cc]:before{content:"";background:var(--c);border-radius:4px;width:12px;height:12px;position:absolute;top:0;left:-7px}.cv-list-exps h3[data-v-9d2d56cc]{font:800 28px/1.1 var(--sans);letter-spacing:-.03em}.cv-list-exps>li>p[data-v-9d2d56cc]{color:#c9c9d3;margin-top:8px}.cv-list-exps .cv-tags[data-v-9d2d56cc]{margin-top:12px}.cv-list-projects[data-v-9d2d56cc]{gap:14px;margin:18px 0 0;padding:0;list-style:none;display:grid}.cv-list-projects>li[data-v-9d2d56cc]{border:1px solid var(--line2);background:var(--card);border-radius:14px;grid-template-columns:160px 1fr;gap:16px;padding:12px;display:grid}.cv-list-visual[data-v-9d2d56cc]{aspect-ratio:280/150;border-radius:9px;overflow:hidden}.cv-list-visual[data-v-9d2d56cc] svg,.cv-list-visual[data-v-9d2d56cc] img{object-fit:cover;width:100%;height:100%;display:block}.cv-list-projects h4[data-v-9d2d56cc]{font:700 18px/1.2 var(--sans)}.cv-list-projects p[data-v-9d2d56cc]{color:var(--muted);margin-top:4px;font-size:14px}.cv-list-projects a[data-v-9d2d56cc]{color:#7cc4ff;margin-top:8px;font-size:14px;font-weight:600;display:inline-block}.cv-list-skills[data-v-9d2d56cc]{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.cv-list-skills li[data-v-9d2d56cc]{color:#2b2306;background:#fde68a;border-radius:6px;padding:8px 12px;font-weight:600}.cv-list-skills li.is-tool[data-v-9d2d56cc]{color:#082231;background:#bae6fd}.cv-list-contact[data-v-9d2d56cc]{border:1px solid #34d39959;border-radius:20px;padding:28px}.cv-list-contact h2[data-v-9d2d56cc]{font:800 30px/1.1 var(--sans);text-transform:none;letter-spacing:-.03em;color:var(--text)}.cv-list-contact .cv-legal[data-v-9d2d56cc]{margin-top:24px}@media (width<=899px){.cv-layers[data-v-9d2d56cc],.cv-file-meta[data-v-9d2d56cc],.cv-faces[data-v-9d2d56cc]{display:none}.cv-panel[data-v-9d2d56cc]{border-radius:18px 18px 0 0;width:auto;max-height:58vh;inset:auto 8px 0}.cv-panel-body[data-v-9d2d56cc]{padding-bottom:84px}.cv-panel-enter-from[data-v-9d2d56cc],.cv-panel-leave-to[data-v-9d2d56cc]{transform:translateY(40px)}}@media (width<=719px){.cv-mini[data-v-9d2d56cc],.cv-hint[data-v-9d2d56cc]{display:none}}@media (width<=520px){.cv-topbar[data-v-9d2d56cc]{top:8px;left:8px;right:8px}.cv-file[data-v-9d2d56cc]{gap:7px;padding:0 10px 0 8px}.cv-file svg[data-v-9d2d56cc]{display:none}.cv-file-name[data-v-9d2d56cc]{font-size:13px}.cv-tools[data-v-9d2d56cc]{gap:2px;padding:0 4px}.cv-zoom button[data-v-9d2d56cc]{min-width:26px}.cv-zoom .cv-zoom-val[data-v-9d2d56cc]{min-width:42px}.cv-listbtn[data-v-9d2d56cc]{padding:0 9px!important}.cv-list-projects>li[data-v-9d2d56cc]{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.cv-link[data-v-9d2d56cc],.cv-now[data-v-9d2d56cc]{animation:none}.cv-card[data-v-9d2d56cc],.cv-sticky[data-v-9d2d56cc],.cv-hint[data-v-9d2d56cc],.cv-panel-enter-active[data-v-9d2d56cc],.cv-panel-leave-active[data-v-9d2d56cc]{transition:none}}.shell[data-v-1af7ded8]{flex-direction:column;min-height:100vh;display:flex}.shell-skip[data-v-1af7ded8]{z-index:50;background:var(--blue);color:#fff;border-radius:10px;padding:10px 16px;font-weight:600;position:fixed;top:8px;left:50%;transform:translate(-50%,-200%)}.shell-skip[data-v-1af7ded8]:focus{transform:translate(-50%)}.shell-bar[data-v-1af7ded8]{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;gap:8px;margin:12px 12px 0;display:flex;position:sticky;top:12px}.shell-bar[data-v-1af7ded8]>*{pointer-events:auto}.shell-file[data-v-1af7ded8],.shell-tools[data-v-1af7ded8]{border:1px solid var(--line2);-webkit-backdrop-filter:blur(14px);background:#16161bd1;border-radius:12px;align-items:center;min-width:0;height:44px;display:flex;box-shadow:0 12px 40px -12px #000000b3}.shell-file[data-v-1af7ded8]{gap:8px;padding:0 14px 0 11px;overflow:hidden}.shell-home[data-v-1af7ded8]{flex-shrink:0;align-items:center;gap:10px;display:flex}.shell-name[data-v-1af7ded8]{font:600 14px/1 var(--sans);white-space:nowrap}.shell-name span[data-v-1af7ded8],.shell-sep[data-v-1af7ded8]{color:var(--muted);font-weight:400}.shell-crumb[data-v-1af7ded8]{color:var(--muted);font:400 13px/1 var(--mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shell-crumb[data-v-1af7ded8]:hover,.shell-crumb.is-current[data-v-1af7ded8]{color:var(--text)}.shell-tools[data-v-1af7ded8]{flex-shrink:0;gap:6px;padding:0 5px}.shell-canvas[data-v-1af7ded8]{background:var(--blue);color:#fff;height:32px;font:600 13px/1 var(--sans);white-space:nowrap;border-radius:8px;place-items:center;padding:0 12px;display:grid}.shell-main[data-v-1af7ded8]{flex:1;width:min(1120px,100% - 32px);margin:0 auto;padding:56px 0 80px}.shell-footer[data-v-1af7ded8]{border-top:1px solid var(--line);color:var(--muted);font:400 12px/1.4 var(--mono);flex-wrap:wrap;justify-content:center;gap:8px 22px;padding:28px 16px 36px;display:flex}.shell-footer a[data-v-1af7ded8]:hover{color:var(--text)}@media (width<=560px){.shell-name[data-v-1af7ded8]{display:none}}.cs-arrows[data-v-85731c33]{border-right:1px solid var(--line2);margin-right:2px;padding-right:4px;display:flex}.cs-arrows a[data-v-85731c33]{color:#d4d4dc;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.cs-arrows a[data-v-85731c33]:hover{background:#ffffff14}.cs-hero[data-v-85731c33]{grid-template-columns:minmax(0,1fr) 300px;align-items:end;gap:24px;margin-bottom:24px;display:grid}.cs-kicker[data-v-85731c33]{color:var(--muted);font:500 13px/1 var(--mono);align-items:center;gap:8px;display:flex}.cs-kicker span[data-v-85731c33]{background:var(--blue);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #0d99ff33}h1[data-v-85731c33]{font:800 clamp(2.6rem, 8vw, 5.5rem)/.95 var(--sans);letter-spacing:-.04em;margin:18px 0 14px}.cs-subtitle[data-v-85731c33]{color:#c9c9d3;max-width:34ch;font-size:clamp(1.1rem,2.4vw,1.45rem);line-height:1.35}.cs-cta[data-v-85731c33]{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.cs-inspector[data-v-85731c33]{border:1px solid var(--line2);background:#16161bd1;border-radius:14px;padding:16px}.cs-inspector-title[data-v-85731c33]{color:var(--muted);font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}.cs-inspector dl[data-v-85731c33]{gap:8px;margin-bottom:14px;display:grid}.cs-inspector dl div[data-v-85731c33]{grid-template-columns:70px 1fr;gap:10px;font-size:13px;display:grid}.cs-inspector dt[data-v-85731c33]{color:var(--muted)}.cs-inspector dd a[data-v-85731c33]{color:var(--blue);word-break:break-all}.cs-gallery[data-v-85731c33]{border-color:#0d99ff4d;margin-bottom:24px}.cs-shots[data-v-85731c33]{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));align-items:start;gap:18px;display:grid}.cs-shot[data-v-85731c33]{border:1px solid var(--line2);background:var(--card);cursor:zoom-in;border-radius:12px;width:100%;padding:0;transition:transform .25s,border-color .25s;display:block;overflow:hidden}.cs-shot[data-v-85731c33]:hover{border-color:#0d99ff99;transform:translateY(-3px)}.cs-shot img[data-v-85731c33],.cs-shot[data-v-85731c33] svg{width:100%;height:auto;display:block}.cs-shot.is-wide[data-v-85731c33]:first-child,.cs-shot.is-generated[data-v-85731c33]{grid-column:1/-1}.cs-shot.is-generated[data-v-85731c33]{cursor:default}.cs-shot.is-generated[data-v-85731c33] svg{aspect-ratio:16/7}.cs-chrome[data-v-85731c33]{border-bottom:1px solid var(--line);gap:6px;padding:10px 12px;display:flex}.cs-chrome i[data-v-85731c33]{background:#ffffff2e;border-radius:50%;width:9px;height:9px}.cs-shot.is-phone[data-v-85731c33]{background:#050507;border:1px solid #fff3;border-radius:34px;justify-self:center;max-width:280px;padding:10px}.cs-shot.is-phone .cs-chrome[data-v-85731c33]{display:none}.cs-shot.is-phone img[data-v-85731c33]{border-radius:24px}.cs-grid[data-v-85731c33]{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}.frame+.frame[data-v-85731c33],.cs-grid+.frame[data-v-85731c33]{margin-top:24px}.cs-grid .frame+.frame[data-v-85731c33]{margin-top:0}.frame p[data-v-85731c33]{color:#c9c9d3;font-size:16px;line-height:1.65}.cs-challenge[data-v-85731c33]{border-left:3px solid var(--blue);background:linear-gradient(90deg, #0d99ff14, transparent 60%), var(--frame)}.cs-challenge p[data-v-85731c33]{color:var(--text);font-size:clamp(1.1rem,2.2vw,1.35rem);line-height:1.5}.cs-actions[data-v-85731c33]{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;padding:0;list-style:none;display:grid}.cs-actions li[data-v-85731c33]{border:1px solid var(--line);background:var(--card);color:#d4d4dc;border-radius:12px;gap:14px;padding:14px 16px;display:flex}.cs-actions span[data-v-85731c33]{color:var(--blue);font:600 13px/1.6 var(--mono)}.cs-results[data-v-85731c33]{gap:10px;padding:0;list-style:none;display:grid}.cs-results li[data-v-85731c33]{color:var(--text);padding:2px 0 2px 34px;font-size:16px;position:relative}.cs-results li[data-v-85731c33]:before{content:"✓";color:#34d399;background:#34d39926;border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;display:grid;position:absolute;top:0;left:0}.cs-next[data-v-85731c33]{grid-template-columns:1fr 1fr;gap:24px;margin-top:56px;display:grid}.cs-next-card[data-v-85731c33]{border:1px solid var(--line2);background:var(--card);border-radius:16px;flex-direction:column;transition:transform .25s,border-color .25s;display:flex;overflow:hidden}.cs-next-card[data-v-85731c33]:hover{border-color:#0d99ff99;transform:translateY(-3px)}.cs-next-visual[data-v-85731c33]{border-bottom:1px solid var(--line);height:160px;display:block;overflow:hidden}.cs-next-visual[data-v-85731c33] img,.cs-next-visual[data-v-85731c33] svg{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.cs-next-body[data-v-85731c33]{gap:4px;padding:16px 18px 20px;display:grid}.cs-next-body small[data-v-85731c33]{color:var(--blue);font:500 12px/1.4 var(--mono)}.cs-next-body strong[data-v-85731c33]{font-size:1.3rem}.cs-next-body span[data-v-85731c33]{color:var(--muted);font-size:14px}.cs-dialog[data-v-85731c33]{border:1px solid var(--line2);background:var(--frame);cursor:zoom-out;border-radius:14px;max-width:min(1400px,94vw);max-height:92vh;padding:0;overflow:auto}.cs-dialog[data-v-85731c33]::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050507d9}.cs-dialog img[data-v-85731c33]{max-width:100%;max-height:92vh;margin:0 auto;display:block}.cs-dialog-close[data-v-85731c33]{border:1px solid var(--line2);background:var(--card);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:50%;position:fixed;top:16px;right:16px}.cs-missing h1[data-v-85731c33]{font-size:clamp(2rem,6vw,3.5rem)}.cs-missing p[data-v-85731c33]{margin-bottom:24px}@media (width<=860px){.cs-hero[data-v-85731c33],.cs-grid[data-v-85731c33],.cs-next[data-v-85731c33]{grid-template-columns:1fr}}.lg-head h1[data-v-6d344164]{font:800 clamp(2.2rem, 6vw, 4rem)/1 var(--sans);letter-spacing:-.03em;margin-bottom:32px}.lg-grid[data-v-6d344164]{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:20px;display:grid}.frame-label[data-v-6d344164]{font-weight:500}.frame p[data-v-6d344164]{color:#c9c9d3;line-height:1.65}.frame p+p[data-v-6d344164]{margin-top:12px}.frame a[data-v-6d344164]{color:var(--blue)}.nf[data-v-5f9f898c]{place-items:center;min-height:60vh;display:grid;position:relative}.nf-code[data-v-5f9f898c]{color:#0000;font:800 clamp(9rem, 32vw, 22rem)/1 var(--sans);letter-spacing:-.06em;-webkit-text-stroke:1px #0d99ff59;-webkit-user-select:none;user-select:none;place-items:center;display:grid;position:absolute;inset:0}.nf-card[data-v-5f9f898c]{background:#111115eb;border-style:dashed;border-color:#0d99ff80;max-width:460px;position:relative}h1[data-v-5f9f898c]{font:700 clamp(1.6rem, 5vw, 2.2rem)/1.15 var(--sans);margin-bottom:10px}p[data-v-5f9f898c]{color:var(--muted);margin-bottom:24px}
