.profile-portrait-shell.svelte-r8oqdz{isolation:isolate;aspect-ratio:1;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block;position:relative;overflow:visible}.profile-portrait.svelte-r8oqdz{z-index:1;border-radius:inherit;appearance:none;background:var(--color-accent,#f6c15e);width:100%;height:100%;box-shadow:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;transition:scale var(--motion-fast) cubic-bezier(.22, .8, .3, 1);border:0;padding:0;position:absolute;inset:0;overflow:hidden;scale:1}.profile-portrait__particles.svelte-r8oqdz{z-index:2;pointer-events:none;position:absolute;inset:0}.profile-portrait__particle.svelte-r8oqdz{width:var(--particle-size);height:var(--particle-size);opacity:0;background:var(--color-accent,#f6c15e);image-rendering:pixelated;animation:svelte-r8oqdz-profile-particle-burst var(--particle-duration) cubic-bezier(.16, .84, .28, 1) var(--particle-delay) both;border-radius:1px;display:block;position:absolute;top:50%;left:50%}.profile-portrait__head.svelte-r8oqdz,.profile-portrait.svelte-r8oqdz img:where(.svelte-r8oqdz){width:100%;height:100%;display:block;position:absolute;inset:0}.profile-portrait__head.svelte-r8oqdz{transform:translate(var(--portrait-head-x), var(--portrait-head-y));will-change:transform;transition:transform 80ms linear}.profile-portrait.svelte-r8oqdz img:where(.svelte-r8oqdz){object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;image-rendering:crisp-edges;image-rendering:pixelated}.profile-portrait__eyes.svelte-r8oqdz{transform:translate(var(--portrait-eyes-x), var(--portrait-eyes-y));will-change:transform;transition:opacity 40ms step-end,transform 65ms linear}.profile-portrait__eyes--closed.svelte-r8oqdz,.profile-portrait__mouth--o.svelte-r8oqdz,.profile-portrait[data-expression=blink].svelte-r8oqdz .profile-portrait__eyes--open:where(.svelte-r8oqdz),.profile-portrait[data-expression=surprised].svelte-r8oqdz .profile-portrait__eyes--open:where(.svelte-r8oqdz),.profile-portrait[data-expression=surprised].svelte-r8oqdz .profile-portrait__mouth--normal:where(.svelte-r8oqdz){opacity:0}.profile-portrait[data-expression=blink].svelte-r8oqdz .profile-portrait__eyes--closed:where(.svelte-r8oqdz),.profile-portrait[data-expression=surprised].svelte-r8oqdz .profile-portrait__eyes--closed:where(.svelte-r8oqdz),.profile-portrait[data-expression=surprised].svelte-r8oqdz .profile-portrait__mouth--o:where(.svelte-r8oqdz){opacity:1}.profile-portrait[data-expression=surprised].svelte-r8oqdz{scale:.98}@media (hover:hover) and (pointer:fine){.profile-portrait.svelte-r8oqdz:hover{scale:1.06}.profile-portrait[data-expression=surprised].svelte-r8oqdz{scale:1.02}}@keyframes svelte-r8oqdz-profile-particle-burst{0%{opacity:0;transform:translate(-50%, -50%) translate(var(--particle-start-x), var(--particle-start-y)) rotate(0deg) scale(.5)}14%{opacity:1;transform:translate(-50%, -50%) translate(var(--particle-start-x), var(--particle-start-y)) rotate(0deg) scale(1)}to{opacity:0;transform:translate(-50%, -50%) translate(var(--particle-end-x), var(--particle-end-y)) rotate(var(--particle-rotation)) scale(.3)}}@media (prefers-reduced-motion:reduce){.profile-portrait.svelte-r8oqdz,.profile-portrait__head.svelte-r8oqdz,.profile-portrait__eyes.svelte-r8oqdz,.profile-portrait__particle.svelte-r8oqdz{transition:none;animation:none}.profile-portrait.svelte-r8oqdz:hover,.profile-portrait[data-expression=surprised].svelte-r8oqdz{scale:1}.profile-portrait__head.svelte-r8oqdz,.profile-portrait__eyes.svelte-r8oqdz{transform:none}}.profile-socials.svelte-ks130w{justify-content:center;align-items:center;gap:var(--space-4);margin-top:var(--space-4);display:flex}.profile-socials.svelte-ks130w a:where(.svelte-ks130w){width:2rem;height:2rem;color:var(--color-light);border-radius:.4rem;place-items:center;transition:color .18s,background-color .18s,transform .18s;display:grid;position:relative}.profile-socials.svelte-ks130w a:where(.svelte-ks130w):hover{color:var(--color-accent);background:color-mix(in srgb, var(--color-purple-light) 38%, transparent);transform:translateY(-.1rem)}.profile-socials.svelte-ks130w a:where(.svelte-ks130w):focus-visible{outline:.14rem solid var(--color-accent);outline-offset:.14rem}.profile-socials.svelte-ks130w svg:where(.svelte-ks130w){fill:currentColor;width:1.25rem;height:1.25rem}.profile-socials__tooltip.svelte-ks130w{z-index:10;border:1px solid color-mix(in srgb, var(--color-accent) 70%, var(--color-light));color:var(--color-dark);background:var(--color-accent);box-shadow:0 .28rem 0 color-mix(in srgb, var(--color-dark) 52%, transparent);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transform-origin:50% 100%;border-radius:.25rem;padding:.3rem .48rem;font-size:.62rem;font-weight:800;line-height:1;transition:opacity .16s,transform .16s,visibility .16s;position:absolute;bottom:calc(100% + .55rem);left:50%;transform:translate(-50%,.18rem)scale(.96)}.profile-socials__tooltip.svelte-ks130w:after{border-right:1px solid color-mix(in srgb, var(--color-accent) 70%, var(--color-light));border-bottom:1px solid color-mix(in srgb, var(--color-accent) 70%, var(--color-light));background:var(--color-accent);content:"";width:.42rem;height:.42rem;position:absolute;top:calc(100% - .2rem);left:50%;transform:translate(-50%)rotate(45deg)}.profile-socials.svelte-ks130w a:where(.svelte-ks130w):hover .profile-socials__tooltip:where(.svelte-ks130w),.profile-socials.svelte-ks130w a:where(.svelte-ks130w):focus .profile-socials__tooltip:where(.svelte-ks130w){opacity:1;visibility:visible;transform:translate(-50%)scale(1)}@media (prefers-reduced-motion:reduce){.profile-socials.svelte-ks130w a:where(.svelte-ks130w),.profile-socials__tooltip.svelte-ks130w{transition:none}.profile-socials.svelte-ks130w a:where(.svelte-ks130w):hover{transform:none}}.expanded-project__backdrop.svelte-vfcjyh{z-index:30;border-radius:inherit;background:color-mix(in srgb, var(--color-dark) 44%, transparent);-webkit-backdrop-filter:blur(.7rem)brightness(.72);backdrop-filter:blur(.7rem)brightness(.72);animation:svelte-vfcjyh-expanded-backdrop-in var(--motion-standard) ease-out both;place-items:center;padding:clamp(3rem,8vh,6rem) clamp(3rem,8vw,7rem);display:grid;position:absolute;inset:0}.expanded-project.svelte-vfcjyh{border:1px solid color-mix(in srgb, var(--color-light) 76%, white);width:min(58rem,100%);max-height:78vh;color:var(--color-on-surface);background:var(--color-surface);transform-origin:0 0;border-radius:.8rem;outline:none;position:relative;box-shadow:0 1.4rem 3rem #0000005c}.expanded-project--fallback.svelte-vfcjyh{animation:svelte-vfcjyh-expanded-project-fallback var(--motion-standard) ease-out both}.expanded-project__close.svelte-vfcjyh{z-index:3;width:2.7rem;height:2.7rem;color:var(--color-dark);background:var(--color-accent);cursor:pointer;transition:background-color var(--motion-fast) ease, transform var(--motion-fast) ease;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:0;right:0;transform:translate(45%,-45%);box-shadow:0 .45rem 1rem #0000003d}.expanded-project__close.svelte-vfcjyh:hover{background:color-mix(in srgb, var(--color-accent) 78%, var(--color-light));transform:translate(45%,-45%)scale(1.06)}.expanded-project__close.svelte-vfcjyh:disabled{cursor:default;opacity:.7}@keyframes svelte-vfcjyh-expanded-backdrop-in{0%{opacity:0}}@keyframes svelte-vfcjyh-expanded-project-fallback{0%{opacity:0;translate:0 .6rem;scale:.98}}@media (prefers-reduced-motion:reduce){.expanded-project__backdrop.svelte-vfcjyh,.expanded-project--fallback.svelte-vfcjyh{animation:none}}.project-card.svelte-17gbm4a{--project-gallery-tone-opacity:.7;--card-rotate-x:0deg;--card-rotate-y:0deg;--card-pointer-x:50%;--card-pointer-y:50%;--card-shine-angle:135deg;--card-hover-scale:1;z-index:1;isolation:isolate;border:1px solid color-mix(in srgb, var(--color-light) 72%, white);outline-offset:.109rem;width:100%;min-width:0;height:100%;color:var(--color-on-surface);background:color-mix(in srgb, var(--color-surface,#e2e3d2) 70%, transparent);animation:svelte-17gbm4a-project-card-enter var(--motion-standard) ease-out calc(var(--project-card-index) * 35ms) both, svelte-17gbm4a-project-card-settle .9s ease-out calc(.5s + (var(--project-card-index) * 70ms)) both;border-radius:.473rem;outline:1px solid #0000;flex-direction:column;padding:.473rem;transition:background-color .18s,border-color .18s,box-shadow .16s,-webkit-backdrop-filter .18s,backdrop-filter .18s;display:flex;position:relative;box-shadow:0 .255rem .655rem #00000024}.project-card.svelte-17gbm4a:before{z-index:4;border-radius:inherit;background:radial-gradient(circle at var(--card-pointer-x) var(--card-pointer-y), #ffffff3d 0%, color-mix(in srgb, var(--color-accent) 10%, transparent) 16%, transparent 42%), linear-gradient(var(--card-shine-angle), transparent 25%, #ffffff29 45%, color-mix(in srgb, var(--color-purple-light) 12%, transparent) 52%, transparent 72%);content:"";mix-blend-mode:soft-light;pointer-events:none;opacity:0;transition:opacity .18s;position:absolute;inset:0}.project-card__category.svelte-17gbm4a{color:var(--category-color);background:var(--color-dark);letter-spacing:.02em;text-align:center;text-transform:uppercase;border-radius:.276rem;margin:0;padding:.364rem .509rem;font-size:.636rem;font-weight:600;line-height:1.1}.project-card__gallery.svelte-17gbm4a{min-width:0;margin-top:.4rem}.project-card.svelte-17gbm4a:hover,.project-card.svelte-17gbm4a:focus-within{--project-gallery-tone-opacity:0;background:var(--color-surface,#e2e3d2)}.project-card__content.svelte-17gbm4a{flex-direction:column;flex:1;min-width:0;display:flex}.project-card.svelte-17gbm4a h3:where(.svelte-17gbm4a){letter-spacing:-.06em;overflow-wrap:anywhere;text-align:center;margin:.545rem 0 0;font-size:clamp(.982rem,1.6vw,1.273rem);font-weight:800;line-height:1.05}.project-card__tags.svelte-17gbm4a{flex-wrap:wrap;justify-content:center;gap:.276rem;min-width:0;margin:.473rem 0 0;padding:0;list-style:none;display:flex}.project-card__tags.svelte-17gbm4a button:where(.svelte-17gbm4a),.project-card__tags.svelte-17gbm4a span:where(.svelte-17gbm4a){border:1px solid color-mix(in srgb, var(--color-purple-light) 70%, transparent);max-width:100%;min-height:1.5rem;color:inherit;font:inherit;overflow-wrap:anywhere;transition:border-color var(--motion-fast) ease, background-color var(--motion-fast) ease;background:0 0;border-radius:.145rem;align-items:center;padding:.204rem .349rem;font-size:.611rem;line-height:1.2;display:inline-flex}.project-card__tags.svelte-17gbm4a button:where(.svelte-17gbm4a){cursor:pointer}.project-card__tags.svelte-17gbm4a button:where(.svelte-17gbm4a):hover{border-color:color-mix(in srgb, var(--color-purple-light) 60%, transparent);background:color-mix(in srgb, var(--color-purple-light) 10%, transparent)}.project-card__summary.svelte-17gbm4a{overflow-wrap:anywhere;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;min-width:0;margin:.509rem 0 0;font-size:.655rem;line-height:1.45;display:-webkit-box;overflow:hidden}.project-card__open.svelte-17gbm4a{border-radius:var(--radius-pill);min-width:3.273rem;min-height:1.673rem;color:var(--color-light);background:var(--color-purple-light);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;transition:background-color var(--motion-fast) ease, transform var(--motion-fast) ease;border:0;align-self:center;margin:.727rem auto .109rem;padding:.327rem .727rem;font-size:.582rem;font-weight:600;line-height:1}.project-card__open.svelte-17gbm4a:hover{background:color-mix(in srgb, var(--color-purple-light) 78%, var(--color-light));transform:translateY(-.044rem)}.project-card__open.svelte-17gbm4a:active{transform:scale(.95)}@keyframes svelte-17gbm4a-project-card-enter{0%{opacity:0;translate:0 .436rem}to{opacity:1;translate:0}}@keyframes svelte-17gbm4a-project-card-settle{0%,to{outline-color:#0000}55%{outline-color:color-mix(in srgb, var(--color-accent) 24%, transparent)}}@media (hover:hover) and (pointer:fine){.project-card.svelte-17gbm4a{-webkit-backdrop-filter:blur(.36rem)saturate(1.08);backdrop-filter:blur(.36rem)saturate(1.08);transform:perspective(42rem) rotateX(var(--card-rotate-x)) rotateY(var(--card-rotate-y)) scale(var(--card-hover-scale));transform-origin:50%;transform-style:preserve-3d;transition:transform .11s cubic-bezier(.22,.8,.3,1),box-shadow .16s}.project-card--tilting.svelte-17gbm4a{--card-hover-scale:1.018;z-index:2;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-surface,#e2e3d2);box-shadow:0 .75rem 1.5rem #0003, 0 0 0 1px color-mix(in srgb, var(--color-light) 28%, transparent)}.project-card--tilting.svelte-17gbm4a:before{opacity:.72}}@media (prefers-reduced-motion:reduce){.project-card.svelte-17gbm4a{transition:none;animation:none;transform:none}.project-card.svelte-17gbm4a:hover,.project-card.svelte-17gbm4a:focus-within{-webkit-backdrop-filter:none;backdrop-filter:none}.project-card.svelte-17gbm4a:before{display:none}}
