:root{color:#171717;font-synthesis:none;text-rendering:optimizelegibility;scroll-behavior:smooth;background:#fff;font-family:JetBrains Mono,Consolas,Courier New,monospace}*{box-sizing:border-box}html{scroll-padding-top:24px}html,body,#root{min-height:100%}body{cursor:default;-webkit-user-select:none;user-select:none;min-width:320px;min-height:100vh;margin:0}input,textarea{cursor:text;-webkit-user-select:text;user-select:text}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.site{--page-bg:#fff;--text:#171717;--nav-text:#3a3a3a;--accent:#c93657;--border:#c8c8c8;--media:#171717;--media-inverse:#fff;--panel-border:#aaa0a3;--shadow-soft:4px 4px 0 var(--accent);--shadow-small:2px 2px 0 var(--accent);--shadow-neutral:4px 4px 0 var(--border);--scroll-arrow-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 3.4 10.4 8.6H1.6Z' fill='%23c93657'/%3E%3C/svg%3E");--scroll-arrow-down:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 8.6 1.6 3.4h8.8Z' fill='%23c93657'/%3E%3C/svg%3E");--control-ease:cubic-bezier(.2, .7, .3, 1);--control-transition:transform .16s var(--control-ease), box-shadow .16s var(--control-ease), border-color .15s ease, background-color .15s ease, color .15s ease;min-height:100svh;color:var(--text);background:var(--page-bg);flex-direction:column;transition:color .18s,background-color .18s;display:flex;overflow-x:hidden}.site[data-theme=dark]{--page-bg:#171717;--text:#fff;--nav-text:#c8c8c8;--border:#c8c8c8;--media:#fff;--media-inverse:#171717;--accent:#e45b78;--panel-border:#a99fa2;--scroll-arrow-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 3.4 10.4 8.6H1.6Z' fill='%23e45b78'/%3E%3C/svg%3E");--scroll-arrow-down:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 8.6 1.6 3.4h8.8Z' fill='%23e45b78'/%3E%3C/svg%3E");--shadow-soft:4px 4px 0 var(--accent);--shadow-small:2px 2px 0 var(--accent)}.page-shell{width:min(100% - 32px,836px);margin-inline:auto}.site-header{--control-size:36px;--control-gap:6px;--lang-width:68px;--hero-columns-width:calc(94px + 12px + 623px);--header-top:30px;--header-gap:10px;padding-top:calc(var(--header-top) + var(--header-gap));flex:none;position:relative}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.theme-toggle{--toggle-size:var(--control-size);width:var(--toggle-size);height:var(--toggle-size);flex:0 0 var(--toggle-size);border:1px solid var(--nav-text);color:var(--page-bg);background:var(--text);cursor:pointer;transition:var(--control-transition);border-radius:3px;padding:0;position:relative}.theme-toggle img{transition:transform .32s var(--control-ease)}.theme-toggle:hover img,.theme-toggle:focus-visible img{transform:rotate(180deg)}.theme-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:2px}.theme-toggle__ring{width:var(--toggle-size);height:var(--toggle-size);position:absolute;top:-1px;left:-1px}.theme-toggle__icon{top:calc(var(--toggle-size) * .15 - 1px);left:calc(var(--toggle-size) * .25 - 1px);width:calc(var(--toggle-size) * .6);height:calc(var(--toggle-size) * .7);transform-origin:41.667%;position:absolute}.site[data-theme=light] .theme-toggle img{filter:invert()}.language-select{width:var(--lang-width);display:block;position:relative}.language-select__trigger{width:100%;height:var(--control-size);border:1px solid var(--nav-text);color:var(--nav-text);background:var(--page-bg);cursor:pointer;transition:var(--control-transition);border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-family:inherit;font-size:12px;font-weight:500;line-height:1;display:flex}.language-select__chevron{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:square;stroke-linejoin:miter;width:9px;height:9px;transition:transform .2s var(--control-ease);flex:0 0 9px}.language-select__trigger[aria-expanded=true] .language-select__chevron{transform:rotate(180deg)}.lang-flag{border-radius:1px;flex:0 0 15px;width:15px;height:10px;display:block}.language-select__list{z-index:3;border:1px solid var(--nav-text);background:var(--page-bg);border-radius:9px;min-width:100%;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.language-select__option{width:100%;color:var(--nav-text);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-family:inherit;font-size:12px;font-weight:500;line-height:1;transition:color .14s,background-color .14s;display:flex}.language-select__option[aria-selected=true]{color:var(--accent)}.language-select__option:hover,.language-select__option:focus-visible{color:var(--page-bg);background:var(--accent)}.theme-toggle:hover,.theme-toggle:focus-visible,.language-select__trigger:hover,.language-select__trigger:focus-visible,.art-link:hover,.art-link:focus-visible{border-color:var(--accent);color:var(--page-bg);background:var(--accent);transform:translateY(-2px)}.theme-toggle:active,.language-select__trigger:active,.art-link:active{transform:translateY(0)}.profile-controls{top:var(--header-top);right:max(0px, 100% - var(--hero-columns-width));z-index:2;align-items:center;gap:var(--control-gap);display:flex;position:absolute}.art-link{width:var(--control-size);height:var(--control-size);flex:0 0 var(--control-size);border:1px solid var(--nav-text);color:var(--accent);background:var(--page-bg);transition:var(--control-transition);border-radius:3px;place-items:center;text-decoration:none;display:grid}.art-link svg{width:calc(var(--control-size) * .61);height:calc(var(--control-size) * .61);fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;overflow:visible}.art-link__arrow{transition:transform .26s var(--control-ease)}.art-link:hover .art-link__arrow,.art-link:focus-visible .art-link__arrow{transform:translate(1.5px,-1.5px)}.hero{--hero-text-top:40px;--hero-photo-lift:6px;grid-template-columns:94px minmax(0,623px);align-items:start;gap:12px;margin-top:0;display:grid}.hero__profile{padding-top:calc(var(--hero-text-top) - var(--hero-photo-lift));flex-direction:column;justify-self:start;align-items:center;margin-left:-20px;display:flex}.hero__avatar{width:94px;height:94px;filter:drop-shadow(2px 2px 0 var(--accent));border-radius:50%;position:relative}.hero__photo{border:2px solid var(--media);object-fit:cover;width:100%;height:100%;transition:transform .32s var(--control-ease), filter .32s var(--control-ease);border-radius:50%;display:block}.hero__avatar[data-hover-effect=zoom] .hero__photo{transform:scale(1.08)}.hero__avatar[data-hover-effect=tilt] .hero__photo{transform:rotate(-6deg)scale(1.04)}.hero__avatar[data-hover-effect=tone] .hero__photo{filter:grayscale()contrast(1.08)}.hero__avatar[data-hover-effect=sway] .hero__photo{animation:avatar-sway .7s var(--control-ease)}.hero__avatar[data-hover-effect=pop] .hero__photo{animation:avatar-pop .52s var(--control-ease)}@keyframes avatar-sway{0%,to{transform:rotate(0)}30%{transform:rotate(5deg)}65%{transform:rotate(-5deg)}}@keyframes avatar-pop{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.hero__photo{transition:filter .32s var(--control-ease)}.hero__avatar[data-hover-effect] .hero__photo{animation:none;transform:none}}.hero__content{padding-top:var(--hero-text-top)}.hero-title{margin:0;font-size:28px;line-height:1.15}.hero-title>span{display:block}.hero-title__greeting{margin-bottom:12px}.hero-title__identity{white-space:nowrap}.hero-title__name{color:var(--accent);font-family:Tourney,sans-serif;font-size:28px;font-weight:400;line-height:1;display:inline}.hero p{text-align:left;max-width:623px;margin:15px 0 0 3px;font-size:14px;line-height:1.45}.hero p+p{margin-top:19px}.hero strong,.contact-intro strong{color:inherit;font-style:normal;font-weight:700}.hero__content p strong{font-style:italic}.social-links{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.social-links__row{display:contents}.social-links__row:not(:first-child) .social-links__prompt{display:none}.social-links__prompt{font-size:14px;line-height:1}.social-links__item{border:1px solid var(--nav-text);color:inherit;background:var(--page-bg);cursor:pointer;border-radius:3px;align-items:center;gap:5px;padding:4px 6px;font-family:inherit;font-size:9px;line-height:1;text-decoration:none;transition:color .14s,border-color .14s,background-color .14s,transform .14s;display:inline-flex}.social-links__item:hover,.social-links__item:focus-visible{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.social-links__item:active{transform:translateY(0)}.social-links__icon{height:11px;-webkit-mask-image:var(--icon-mask);-webkit-mask-image:var(--icon-mask);mask-image:var(--icon-mask);background-color:currentColor;transition:transform .16s;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.social-links__instagram{fill:none;stroke:currentColor;stroke-width:1.8px;width:11px;height:11px;transition:transform .16s;display:block}.social-links__instagram-dot{fill:currentColor;stroke:none}.social-links__item:hover .social-links__icon,.social-links__item:focus-visible .social-links__icon,.social-links__item:hover .social-links__instagram,.social-links__item:focus-visible .social-links__instagram{transform:scale(1.12)}.content-column,.footer.content-column{width:min(100% - 32px,623px);margin-left:calc(50% - 313px)}.tab-workspace{flex-direction:column;flex:none;min-height:0;padding-top:27px;display:flex}.tabs-card{background:0 0;border:0;border-radius:0;flex-direction:column;flex:none;min-height:0;display:flex;overflow:visible}.tabs{z-index:2;flex:none;align-items:flex-end;gap:30px;padding:0;display:flex;position:relative}.tab-button{z-index:1;color:var(--text);cursor:pointer;opacity:.58;background:0 0;border:1px solid #0000;border-bottom:0;border-radius:3px 3px 0 0;align-items:center;gap:7px;margin-bottom:0;padding:7px 10px;font-family:inherit;font-size:14px;font-weight:500;line-height:1;transition:color .12s,opacity .12s,border-color .12s,box-shadow .12s,transform .12s;display:inline-flex;position:relative}.tab-button__icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;flex:0 0 17px;width:17px;height:17px;transition:transform .15s}.tab-button:after{content:none}.tab-button:hover,.tab-button:focus-visible{opacity:1}.tab-button:focus-visible{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:4px;outline:none}.tab-button[aria-selected=true]:focus-visible{text-decoration:none}.tab-button[aria-selected=true]{z-index:3;border-color:var(--panel-border);color:var(--accent);background:var(--page-bg);box-shadow:none;opacity:1;border-bottom:0;margin-bottom:-3px;transform:translate(-2px,-2px)}.tab-button[aria-selected=true]:before{content:"";z-index:-1;border-radius:inherit;box-shadow:4px 4px 0 var(--accent);clip-path:inset(-8px -8px 1px);pointer-events:none;position:absolute;inset:-1px -1px 0}.tab-button:hover,.tab-button:focus-visible,.tab-button[aria-selected=true]:hover,.tab-button[aria-selected=true]:focus-visible{border-color:var(--accent);color:#fff;background:var(--accent);box-shadow:5px 0 0 var(--text);text-shadow:none;-webkit-text-stroke:.35px currentColor;font-weight:700;text-decoration:none;transform:translate(-2px)}.tab-button:hover .tab-button__icon,.tab-button:focus-visible .tab-button__icon{transform:rotate(-6deg)scale(1.08)}.tab-button[aria-selected=true]:hover,.tab-button[aria-selected=true]:focus-visible{box-shadow:none;border-bottom:0;margin-bottom:-3px;transform:translate(-2px,-2px)}.tab-button[aria-selected=true]:hover:before,.tab-button[aria-selected=true]:focus-visible:before{box-shadow:6px 4px 0 var(--text)}.tabs-card[data-active-tab=skills] .tab-button[aria-selected=true],.tabs-card[data-active-tab=skills] .tab-button[aria-selected=true]:hover,.tabs-card[data-active-tab=skills] .tab-button[aria-selected=true]:focus-visible{transform:translateY(-2px)}.tabs .tab-button:first-child:hover,.tabs .tab-button:first-child:focus-visible{margin-top:-1px;padding-top:8px;transform:translate(0)}.tab-panel{border:1px solid var(--panel-border);height:clamp(355px,100vh - 544px,463px);min-height:0;box-shadow:var(--shadow-soft);overscroll-behavior:contain;background:0 0;border-radius:0 12px 12px;outline:none;flex-direction:column;flex:none;padding:18px 17px 12px;display:flex;overflow:hidden auto}@supports not selector(::-webkit-scrollbar){.tab-panel{scrollbar-color:var(--accent) transparent;scrollbar-width:thin}}.tab-panel>.skills{flex:auto;min-height:0;margin-block:0}.tab-panel>.projects{flex:none}.tabs-card[data-active-tab=projects] .tab-panel{padding-top:13px}.tab-panel>.contact-panel{flex:auto;margin-block:0}.tab-panel::-webkit-scrollbar{width:24px}.tab-panel::-webkit-scrollbar-track{background:0 0;margin-block:6px}.tab-panel::-webkit-scrollbar-thumb{background-color:var(--accent);background-clip:content-box;border:8px solid #0000;border-radius:999px}.tab-panel::-webkit-scrollbar-button{background-position:50%;background-repeat:no-repeat;background-size:9px 9px;height:16px;display:block}.tab-panel::-webkit-scrollbar-button:vertical:start:decrement{background-image:var(--scroll-arrow-up)}.tab-panel::-webkit-scrollbar-button:vertical:end:increment{background-image:var(--scroll-arrow-down)}.tab-panel::-webkit-scrollbar-button:vertical:start:increment{display:none}.tab-panel::-webkit-scrollbar-button:vertical:end:decrement{display:none}.skills{grid-template-columns:repeat(3,minmax(0,1fr));align-content:space-between;gap:18px 8px;width:100%;max-width:580px;margin:0 auto;padding-block:22px 4px;display:grid}.skills__row{display:contents}.skill-item{--skill-x:0px;--skill-y:-7px;--skill-rotate:0deg;--skill-scale:1.03;--arc-x:0px;--arc-y:0px;--arc-rotate:0deg;--arc-scale:1.03;--arc-skew:0deg;aspect-ratio:154/87;text-align:center;cursor:default;transform-origin:50% 72%;width:100%;max-width:154px;margin-inline:auto;transition:transform .26s cubic-bezier(.2,.85,.25,1.15);position:relative}.skill-arc{aspect-ratio:2;fill:none;width:84.42%;height:auto;color:var(--nav-text);stroke:currentColor;stroke-width:3.6px;transform-origin:bottom;margin-inline:auto;transition:color .18s,transform .28s cubic-bezier(.2,.85,.25,1.15);display:block}.skill-item span{padding-inline:8px;font-size:10px;line-height:1.2;position:absolute;top:63.22%;left:0;right:0}.skill-item--long span{width:67.53%;padding-inline:0;font-size:9px;left:50%;right:auto;transform:translate(-50%)}.skill-item:hover{z-index:2;transform:translate(var(--skill-x), var(--skill-y)) rotate(var(--skill-rotate)) scale(var(--skill-scale))}.skill-item:hover .skill-arc{color:var(--accent)}.skill-item--motion-1:hover .skill-arc{transform:translate(var(--arc-x), var(--arc-y)) rotate(var(--arc-rotate))}.skill-item--motion-2:hover .skill-arc{transform:translateX(var(--arc-x)) scaleX(var(--arc-scale))}.skill-item--motion-3:hover .skill-arc{transform:translateY(var(--arc-y)) skewX(var(--arc-skew))}.skill-item--motion-4:hover .skill-arc{transform:rotate(var(--arc-rotate)) scaleY(var(--arc-scale))}.skill-item--motion-5:hover .skill-arc{transform:translate(var(--arc-x), var(--arc-y)) scale(var(--arc-scale))}.skill-item--motion-6:hover .skill-arc{transform:translateX(var(--arc-x)) rotate(var(--arc-rotate)) skewY(var(--arc-skew))}.skill-item--motion-7:hover .skill-arc{transform:translateY(var(--arc-y)) scaleX(var(--arc-scale)) rotate(var(--arc-rotate))}.skill-item--motion-8:hover .skill-arc{transform:translate(var(--arc-x), var(--arc-y)) skewX(var(--arc-skew))}.skill-item--motion-9:hover .skill-arc{transform:rotate(var(--arc-rotate)) scale(var(--arc-scale))}.skill-item--motion-10:hover .skill-arc{transform:translateX(var(--arc-x)) scaleY(var(--arc-scale))}.skill-item--motion-11:hover .skill-arc{transform:translateY(var(--arc-y)) rotate(var(--arc-rotate)) scaleX(var(--arc-scale))}.skill-slot{--drift:2.6;animation:15s ease-in-out infinite skill-drift-a}.skill-slot:has(.skill-item:hover){z-index:2}.skill-slot--1{animation-name:skill-drift-a;animation-duration:13s;animation-delay:-1.5s}.skill-slot--2{animation-name:skill-drift-b;animation-duration:17s;animation-delay:-6s}.skill-slot--3{animation-name:skill-drift-c;animation-duration:14.5s;animation-delay:-11s}.skill-slot--4{animation-name:skill-drift-b;animation-duration:19s;animation-delay:-3.5s}.skill-slot--5{animation-name:skill-drift-c;animation-duration:16s;animation-delay:-8.5s}.skill-slot--6{animation-name:skill-drift-a;animation-duration:21s;animation-delay:-13s}.skill-slot--7{animation-name:skill-drift-c;animation-duration:18s;animation-delay:-5s}.skill-slot--8{animation-name:skill-drift-a;animation-duration:15.5s;animation-delay:-9.5s}.skill-slot--9{animation-name:skill-drift-b;animation-duration:22s;animation-delay:-2.5s}@keyframes skill-drift-a{0%,to{transform:translate(0,0)rotate(0)}25%{transform:translate3d(calc(var(--drift) * 2.5px), calc(var(--drift) * -2.5px), 0) rotate(calc(var(--drift) * .5deg))}50%{transform:translate3d(calc(var(--drift) * .5px), calc(var(--drift) * -4px), 0) rotate(0deg)}75%{transform:translate3d(calc(var(--drift) * -2.5px), calc(var(--drift) * -2px), 0) rotate(calc(var(--drift) * -.45deg))}}@keyframes skill-drift-b{0%,to{transform:translate(0,0)rotate(0)}30%{transform:translate3d(calc(var(--drift) * -3px), calc(var(--drift) * -2px), 0) rotate(calc(var(--drift) * -.5deg))}60%{transform:translate3d(calc(var(--drift) * 1.5px), calc(var(--drift) * -3.5px), 0) rotate(calc(var(--drift) * .4deg))}85%{transform:translate3d(calc(var(--drift) * 2.5px), calc(var(--drift) * -1.5px), 0) rotate(calc(var(--drift) * .3deg))}}@keyframes skill-drift-c{0%,to{transform:translate(0,0)rotate(0)}35%{transform:translate3d(calc(var(--drift) * 3px), calc(var(--drift) * -2px), 0) rotate(calc(var(--drift) * .45deg))}70%{transform:translate3d(calc(var(--drift) * -1.5px), calc(var(--drift) * -3px), 0) rotate(calc(var(--drift) * -.35deg))}}@media (prefers-reduced-motion:reduce){.skill-slot{animation:none}}.projects{align-content:start;gap:26px;width:100%;margin:0 auto;padding-block:12px;display:grid}.project-card{--prompt-gutter:12px;border:2px solid var(--border);background:var(--page-bg);box-shadow:var(--shadow-neutral);border-radius:10px;overflow:hidden}.project-card.horizontal{grid-template-columns:1fr 1fr;height:130px;margin-bottom:30px;display:grid}.project-card.media-right .project-card__media{grid-area:1/2}.project-card.media-right .project-card__content{grid-area:1/1}.project-card__media{background-color:var(--media);min-height:108px}.project-card__media img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.project-card__content{padding:22px 29px}.project-card--solo .project-card__content{border-left:1px solid var(--border);padding:20px 24px}.project-card.project-card--solo{grid-template-columns:1fr 2fr;height:auto;margin-bottom:0;display:grid}.project-card--solo .project-card__media{background-color:#0000;place-items:center;min-height:0;padding:16px;display:grid;position:relative}.project-card__go{opacity:0;pointer-events:none;transition:opacity .26s var(--control-ease);place-items:center;text-decoration:none;display:grid;position:absolute;inset:0}.project-card:hover .project-card__go,.project-card:focus-within .project-card__go{opacity:1;pointer-events:auto}.project-card__go-label{border:1.5px solid var(--accent);width:42px;height:42px;color:var(--accent);background:color-mix(in srgb, var(--page-bg) 72%, transparent);transition:transform .26s var(--control-ease), background-color .16s ease, color .16s ease;border-radius:50%;place-items:center;display:inline-grid;transform:translateY(4px)scale(.96)}.project-card:hover .project-card__go-label,.project-card:focus-within .project-card__go-label{transform:none}.project-card__go:hover .project-card__go-label{color:var(--page-bg);background:var(--accent)}.project-card__go-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;width:18px;height:18px}.audio-preview{justify-items:center;gap:10px;width:100%;display:grid}.audio-preview__toggle{border:2px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;transition:var(--control-transition);background:0 0;border-radius:50%;place-items:center;padding:0;display:grid}.audio-preview__toggle:hover,.audio-preview__toggle:focus-visible{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-small);transform:translate(-1px,-1px)}.audio-preview__toggle svg{fill:currentColor;width:15px;height:15px;margin-left:1px}.audio-preview__toggle:has(rect) svg{margin-left:0}.audio-preview__wave{align-items:center;gap:1px;width:100%;height:38px;display:flex}.audio-preview__bar{background:var(--border);border-radius:1px;flex:1 1 0;min-width:0;transition:background-color .12s linear}.audio-preview__bar[data-played=true]{background:var(--accent)}.project-card:hover .audio-preview__toggle,.project-card:focus-within .audio-preview__toggle{border-color:var(--accent);color:var(--accent)}.project-card:hover .audio-preview__bar,.project-card:focus-within .audio-preview__bar{background:color-mix(in srgb, var(--accent) 45%, transparent)}.project-card:hover .audio-preview__bar[data-played=true],.project-card:focus-within .audio-preview__bar[data-played=true]{background:var(--accent)}.project-card--solo .project-card__media img{border:1px solid var(--border);object-fit:contain;width:100%;height:auto;max-height:100%}.project-card h3{padding-left:var(--prompt-gutter);margin:0 0 12px;font-size:18px;line-height:1;position:relative}.project-card__prompt{font-size:11px;font-weight:400;position:absolute;left:0}.project-card h3 a{color:inherit;flex-wrap:wrap;align-items:baseline;gap:5px 7px;text-decoration:none;transition:color .15s;display:inline-flex}.project-card__name{white-space:nowrap;text-underline-offset:3px;text-decoration:underline}.project-card__host{font-size:10px;font-weight:400}.project-card h3 a:hover,.project-card h3 a:focus-visible{color:var(--accent)}.project-card__summary{padding-left:var(--prompt-gutter);margin:0 0 14px;font-size:11px;line-height:1.5;position:relative}.project-card__summary:before{content:">";position:absolute;left:0}.project-card ul{padding:0 0 0 var(--prompt-gutter);grid-template-columns:repeat(2,max-content);gap:8px 30px;margin:0;font-size:10px;list-style:none;display:grid}.project-card li:first-child{position:relative}.project-card li:first-child:before{content:">";left:calc(-1 * var(--prompt-gutter));position:absolute}@media (hover:hover) and (prefers-reduced-motion:no-preference){.project-card{--shard:1.25;border-color:var(--panel-border);transition:border-color .48s}.project-card:is(:hover,:focus-within){border-color:var(--border)}.project-card__media,.project-card h3,.project-card__summary,.project-card ul{transition:transform 1.6s cubic-bezier(.35,.12,.65,.88)}.projects[data-motion-settled=false] .project-card__media,.projects[data-motion-settled=false] .project-card h3,.projects[data-motion-settled=false] .project-card__summary,.projects[data-motion-settled=false] .project-card ul{transition-duration:2.2s;transition-timing-function:cubic-bezier(.4,.14,.6,1)}.projects .project-card__media{transform:translate3d(calc(var(--shard) * -3px), calc(var(--shard) * -2.4px), 0) rotate(calc(var(--shard) * -.22deg)) scale(calc(1 - (var(--shard) * .009)))}.projects .project-card h3{transform:translate3d(calc(var(--shard) * 3.6px), calc(var(--shard) * -1.8px), 0) rotate(calc(var(--shard) * .33deg))}.projects .project-card__summary{transform:translate3d(calc(var(--shard) * -2.4px), calc(var(--shard) * 1.8px), 0) rotate(calc(var(--shard) * -.27deg))}.projects .project-card ul{transform:translate3d(calc(var(--shard) * 3px), calc(var(--shard) * 2.4px), 0) rotate(calc(var(--shard) * .36deg))}@starting-style{.projects[data-motion-settled=false] .project-card__media,.projects[data-motion-settled=false] .project-card h3,.projects[data-motion-settled=false] .project-card__summary,.projects[data-motion-settled=false] .project-card ul{transform:none}}.project-card:is(:hover,:focus-within) .project-card__media,.project-card:is(:hover,:focus-within) h3,.project-card:is(:hover,:focus-within) .project-card__summary,.project-card:is(:hover,:focus-within) ul{transform:none}.projects .project-card__shard,.projects .project-card__media>*{transform-origin:50%;animation:7s ease-in-out infinite card-drift-a}.projects .project-card__media>*{animation-name:card-drift-a;animation-duration:7s}.projects .project-card__shard--title{animation-name:card-drift-b;animation-duration:6s}.projects .project-card__shard--summary{animation-name:card-drift-c;animation-duration:8s}.projects .project-card__shard--tags{animation-name:card-drift-d;animation-duration:6.5s}.project-card:is(:hover,:focus-within) .project-card__shard,.project-card:is(:hover,:focus-within) .project-card__media>*{animation:none}.project-card__media,.project-card__media>*,.project-card__shard,.project-card h3,.project-card__summary,.project-card ul{will-change:transform}}@media (hover:none) and (prefers-reduced-motion:no-preference){.projects .project-card__shard{transform-origin:50%;will-change:transform;animation:13s ease-in-out infinite card-text-drift}.projects .project-card__shard--title{animation-duration:11s}.projects .project-card__shard--tags{animation-duration:12s}}@keyframes card-text-drift{0%,to{transform:translate(0,0)rotate(0)}33%{transform:translate(0,0)rotate(1.9deg)}66%{transform:translate(0,0)rotate(-1.6deg)}}@keyframes card-drift-a{0%,to{transform:translate(0,0)rotate(0)}33%{transform:translate(0,0)rotate(.55deg)}66%{transform:translate(0,0)rotate(-.48deg)}}@keyframes card-drift-b{0%,to{transform:translate(0,0)rotate(0)}30%{transform:translate(0,0)rotate(-1.05deg)}65%{transform:translate(0,0)rotate(.95deg)}}@keyframes card-drift-c{0%,to{transform:translate(0,0)rotate(0)}40%{transform:translate(0,0)rotate(.9deg)}75%{transform:translate(0,0)rotate(-.78deg)}}@keyframes card-drift-d{0%,to{transform:translate(0,0)rotate(0)}25%{transform:translate(0,0)rotate(-.88deg)}55%{transform:translate(0,0)rotate(1.08deg)}80%{transform:translate(0,0)rotate(.46deg)}}.projects__grid{grid-template-columns:repeat(2,1fr);gap:40px;display:grid}.project-card.vertical{grid-template-rows:110px 110px;height:220px;display:grid}.project-card.vertical .project-card__content{padding:22px 29px}.contact-panel{grid-template-rows:1fr 2fr;min-height:0;display:grid}.contact-intro{border-bottom:1px solid var(--panel-border);text-align:left;flex-direction:column;justify-content:center;align-items:stretch;gap:10px;min-height:0;margin:0 0 0 2px;font-size:14px;line-height:1.45;display:flex}.contact-intro__line{margin:0}.contact-bubble{animation:18s linear infinite bubble-drift;display:inline-block;position:relative}.contact-intro__line:nth-child(2) .contact-bubble{animation-direction:reverse}.contact-bubble__body{border:1px solid var(--panel-border);background:var(--page-bg);transition:transform .26s var(--control-ease), border-color .2s ease;border-radius:14px;padding:7px 12px;display:inline-block}.contact-bubble:hover .contact-bubble__body,.contact-intro__line:focus-within .contact-bubble__body{border-color:var(--accent);transform:translateY(-5px)rotate(-1.2deg)}@keyframes bubble-drift{0%,to{animation-timing-function:cubic-bezier(.5,.5,.68,1);left:50%;transform:translate(-50%)rotate(0)}25%{animation-timing-function:cubic-bezier(.32,0,.5,.5);left:100%;transform:translate(-100%,-9px)rotate(1.4deg)}50%{animation-timing-function:cubic-bezier(.5,.5,.68,1);left:50%;transform:translate(-50%)rotate(0)}75%{animation-timing-function:cubic-bezier(.32,0,.5,.5);left:0;transform:translateY(-9px)rotate(-1.4deg)}}@media (prefers-reduced-motion:reduce){.contact-bubble{animation:none}.contact-bubble__body{transition:none}}.contact-form{flex:1;grid-template-rows:auto minmax(44px,1fr) auto auto;grid-template-columns:repeat(2,1fr);gap:10px 40px;width:100%;max-width:580px;min-height:0;margin:14px auto 0;display:grid}.contact-form label{gap:7px;font-size:10px;display:grid}.contact-form input,.contact-form textarea{border:2px solid var(--border);width:100%;color:var(--text);box-shadow:none;background:0 0;border-radius:4px;outline:none;transition:border-color .16s,box-shadow .16s}.contact-form input{height:26px;padding:3px 10px}.contact-form textarea{resize:vertical;height:100%;min-height:0;padding:8px 10px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.contact-form__message{grid-column:1/-1;grid-template-rows:auto minmax(0,1fr);min-height:0}.contact-form button{width:100%;height:24px;color:var(--page-bg);background:var(--accent);cursor:pointer;box-shadow:none;border:0;border-radius:3px;grid-column:1/-1;justify-content:center;align-items:center;gap:5px;padding:0 14px;font-family:inherit;font-size:11px;font-weight:500;transition:transform .16s,opacity .16s;display:flex}.contact-form__send-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;width:10px;height:10px;transition:transform .2s var(--control-ease);flex:0 0 10px}.contact-form button:hover .contact-form__send-icon,.contact-form button:focus-visible .contact-form__send-icon{transform:translate(2px)}.contact-form button:hover,.contact-form button:focus-visible{opacity:.86;transform:translateY(-1px)}.form-status{min-height:0;color:var(--accent);text-align:right;grid-column:1/-1;margin:-2px 0 0;font-size:11px}.footer{--prompt-gutter:16px;text-align:left;flex:none;padding-top:28px;padding-bottom:16px;font-family:JetBrains Mono,Consolas,Courier New,monospace}.footer>*{padding-left:var(--prompt-gutter);position:relative}.footer>:before{content:"#";font-family:JetBrains Mono,Consolas,Courier New,monospace;font-size:14px;line-height:1;position:absolute;top:50%;left:0;transform:translateY(-50%)}.farewell{margin:14px 0 0;padding-left:0;font-size:14px;line-height:1.45}.farewell:before{content:none}.footer-exit{margin:14px 0 0;padding-left:0;font-size:14px;line-height:1.45}.footer-exit:before{content:none}.footer .social-links{padding-left:0}.footer .social-links:before{content:none}.footer .social-links{justify-content:flex-start;margin:0}.terminal-caret{vertical-align:-.143em;background:var(--accent);width:2px;height:1em;margin-left:.1em;animation:1.1s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.site:has(.contact-form :is(input,textarea):focus) .terminal-caret{opacity:0;animation:none}@media (prefers-reduced-motion:reduce){.terminal-caret{animation:none}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (width<=920px){.page-shell,.content-column,.footer.content-column{width:min(100% - 40px,623px);margin-inline:auto}.profile-controls{right:0}.hero{--hero-text-top:24px;display:block}.hero__profile{align-items:flex-start;width:max-content;margin-left:0;padding-top:0}.hero p{max-width:none}.hero-title{font-size:clamp(24px,3.3vw,28px)}.tab-panel{scrollbar-gutter:auto;flex:none;height:auto;padding:16px 18px;overflow:visible}}@media (width<=560px){.page-shell,.content-column,.footer.content-column{width:min(100% - 32px,480px)}.site-header{padding-top:calc(var(--header-top) + var(--control-size) + var(--header-gap))}.hero{text-align:center;--hero-text-top:18px}.hero__profile{align-items:center;margin-inline:auto}.hero__avatar{margin-inline:auto}.hero-title__prompt{display:none}.profile-controls{left:0}.language-select{order:-1;margin-right:auto}.hero p{margin-left:0}.hero-title>.hero-title__identity{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:12px .6em;display:flex}.hero-title__greeting:first-letter,.hero-title__introduction:first-letter{text-transform:uppercase}.hero-title{font-size:clamp(18px,5.2vw,22px)}.hero-title__name{white-space:nowrap;font-size:clamp(23px,6.5vw,27px)}.tab-workspace{padding-top:24px}.tabs{justify-content:space-between;gap:4px;padding:11px 0 0}.tab-button{gap:5px;padding-inline:7px;font-size:12px}.tab-button__icon{flex-basis:15px;width:15px;height:15px}.tabs .tab-button:last-child[aria-selected=true],.tabs .tab-button:last-child[aria-selected=true]:hover,.tabs .tab-button:last-child[aria-selected=true]:focus-visible{transform:translateY(-2px)}.tabs .tab-button:last-child[aria-selected=true]:before{box-shadow:-4px 4px 0 var(--accent)}.tabs .tab-button:last-child[aria-selected=true]:hover:before,.tabs .tab-button:last-child[aria-selected=true]:focus-visible:before{box-shadow:-6px 4px 0 var(--text)}.tabs .tab-button:last-child:not([aria-selected=true]):hover,.tabs .tab-button:last-child:not([aria-selected=true]):focus-visible{box-shadow:-5px 0 0 var(--text);transform:translate(0)}.tab-panel{box-shadow:none;border-radius:0 0 12px 12px;padding:14px 14px 16px}.project-card.project-card--solo{grid-template-columns:1fr}.project-card--solo .project-card__content{border-top:1px solid var(--border);border-left:0}.project-card.horizontal{grid-template-rows:140px auto;grid-template-columns:1fr;height:auto}.project-card.media-right .project-card__media,.project-card.media-right .project-card__content{grid-column:1}.project-card.media-right .project-card__media{grid-row:1}.project-card.media-right .project-card__content{grid-row:2}.projects__grid{grid-template-columns:1fr}.contact-form{grid-template-rows:auto auto minmax(100px,1fr) auto auto;grid-template-columns:1fr}.contact-form__message,.contact-form button,.form-status{grid-column:1}.contact-intro{font-size:13px}.social-links{flex-direction:column;align-items:flex-start;gap:14px}.social-links__row{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.social-links__row:not(:first-child) .social-links__prompt{display:inline}}@media (width<=480px){.skills{grid-template-columns:repeat(2,minmax(0,1fr));max-width:340px}.skills__row:last-child .skill-slot:last-child{grid-column:1/-1}}@media (width<=380px){.page-shell,.content-column,.footer.content-column{width:calc(100% - 24px)}.tab-button{gap:4px;padding-inline:5px;font-size:11px}.tab-button__icon{flex-basis:13px;width:13px;height:13px}.project-card--solo .project-card__content{padding:18px 16px}.project-card ul{column-gap:18px}.contact-intro{font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
