.neo-image.svelte-lswwjm,.neo-image-img.svelte-lswwjm{border-radius:var(--neo-image-border-radius,var(--neo-border-radius,.5rem));width:100%;height:100%;transition:border-radius .3s,color .3s,background-color .5s,border-color .5s,opacity .5s}.neo-image.neo-rounded.svelte-lswwjm,.neo-image-img.neo-rounded.svelte-lswwjm{border-radius:var(--neo-image-border-radius,var(--neo-border-radius-xxl))}.neo-image.svelte-lswwjm{visibility:visible;background-color:#0000;position:relative}.neo-image-icon.svelte-lswwjm{top:calc(50% - var(--neo-image-icon-size,20%) / 2);left:calc(50% - var(--neo-image-icon-size,20%) / 2);gap:var(--neo-gap-xxs,.5rem);width:var(--neo-image-icon-size,20%);height:var(--neo-image-icon-size,20%);color:var(--neo-text-color-inverse);visibility:hidden;opacity:.75;flex-direction:column;justify-content:center;align-items:center;transition:visibility .3s,opacity .3s;display:flex;position:absolute}.neo-image-icon.svelte-lswwjm>svg{width:100%;height:100%}.neo-image.neo-skeleton.svelte-lswwjm{--neo-skeleton-start:1;--neo-skeleton-end:calc(1 + var(--neo-skeleton-step,-.3));color:var(--neo-skeleton-color);background-color:var(--neo-skeleton-color);border-color:var(--neo-skeleton-color);opacity:1;animation:svelte-lswwjm-skeleton 3s var(--neo-transition-skeleton) infinite;background-clip:padding-box;transition:border-radius .333333s,background-color 1s,color .333333s,border-color 1s,opacity 1s;animation-delay:1s}@keyframes svelte-lswwjm-skeleton{0%,80%,to{opacity:var(--neo-skeleton-start)}40%{opacity:var(--neo-skeleton-end)}}.neo-image.neo-skeleton.svelte-lswwjm .neo-image-img:where(.svelte-lswwjm){opacity:0}.neo-image.neo-skeleton.svelte-lswwjm .neo-image-icon:where(.svelte-lswwjm){visibility:visible}.neo-image.neo-error.svelte-lswwjm{background-color:var(--neo-image-error-bg,color-mix(in srgb, var(--neo-skeleton-color) 75%, var(--neo-dark-color-error-75)))}.neo-image.neo-error.svelte-lswwjm .neo-image-img:where(.svelte-lswwjm):not(.neo-alt-text){opacity:0}.neo-image.neo-error.svelte-lswwjm .neo-image-img:not(.neo-alt-text)[alt]:where(.svelte-lswwjm){white-space:pre-line;overflow-wrap:anywhere;align-content:flex-end;overflow:hidden}.neo-image.neo-error.svelte-lswwjm .neo-image-icon:where(.svelte-lswwjm){visibility:visible}.neo-image.neo-glass.svelte-lswwjm{--neo-skeleton-color:var(--neo-glass-skeleton-color)}.neo-button.neo-pulse.svelte-12cmrio:after,.neo-button.neo-pulse.svelte-12cmrio:before,.neo-button.neo-coalesce.svelte-12cmrio:after,.neo-button.neo-coalesce.svelte-12cmrio:before{z-index:var(--neo-z-index-behind,-1);border-radius:inherit;opacity:0;content:"";width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.neo-button.svelte-12cmrio{box-sizing:border-box;min-width:var(--neo-btn-min-width);min-height:var(--neo-btn-min-height);margin:var(--neo-btn-margin,var(--neo-shadow-margin,.625rem));padding:var(--neo-btn-padding,.25rem .75rem);color:var(--neo-btn-text-color,inherit);font:inherit;background-color:var(--neo-btn-bg-color,transparent);border:var(--neo-btn-border-with,var(--neo-border-width,1px)) var(--neo-btn-border-color,transparent) solid;border-radius:var(--neo-btn-border-radius,var(--neo-border-radius));box-shadow:var(--neo-btn-box-shadow,var(--neo-box-shadow-raised-3));cursor:pointer;appearance:none;will-change:background-color, box-shadow;background-clip:padding-box;justify-content:center;align-items:center;text-decoration:none;transition:opacity .3s,color .15s,background-color .15s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,border-radius .3s,box-shadow .3s ease-out;display:inline-flex}.neo-button.neo-loading.svelte-12cmrio{cursor:wait}.neo-button.svelte-12cmrio .neo-icon:where(.svelte-12cmrio),.neo-button.svelte-12cmrio .neo-content:where(.svelte-12cmrio){vertical-align:middle;justify-content:center;align-items:center;display:inline-flex}.neo-button.svelte-12cmrio .neo-icon:where(.svelte-12cmrio) .neo-image{--neo-image-border-radius:0;min-height:1rem}.neo-button.svelte-12cmrio .neo-content:where(.svelte-12cmrio){backface-visibility:hidden;will-change:scale, color;width:100%;height:100%;transition:color .15s,scale .3s;scale:1}.neo-button.svelte-12cmrio .neo-content:where(.svelte-12cmrio) .neo-icon:where(.svelte-12cmrio):not(.neo-only){margin-right:var(--neo-btn-icon-gap,var(--neo-gap-3xs,.3125rem));margin-left:var(--neo-btn-icon-offset,calc(0% - var(--neo-btn-icon-gap,var(--neo-gap-3xs,.3125rem))))}.neo-button.svelte-12cmrio .neo-content.neo-reverse:where(.svelte-12cmrio){flex-direction:row-reverse}.neo-button.svelte-12cmrio .neo-content.neo-reverse:where(.svelte-12cmrio) .neo-icon:where(.svelte-12cmrio):not(.neo-only){margin-right:var(--neo-btn-icon-offset,calc(0% - var(--neo-btn-icon-gap,var(--neo-gap-3xs,.3125rem))));margin-left:var(--neo-btn-icon-gap,var(--neo-gap-3xs,.3125rem))}.neo-button.svelte-12cmrio:focus-visible{outline:var(--neo-border-width,1px) solid var(--neo-border-color-focused);outline-offset:var(--neo-outline-offset-width,-1px)}.neo-button.svelte-12cmrio:focus-visible,.neo-button.svelte-12cmrio:hover{box-shadow:var(--neo-btn-box-shadow-hover,var(--neo-box-shadow-raised-2))}.neo-button.svelte-12cmrio:focus-visible .neo-content:where(.svelte-12cmrio),.neo-button.svelte-12cmrio:hover .neo-content:where(.svelte-12cmrio){color:var(--neo-btn-text-color-hover,var(--neo-text-color-hover))}.neo-button.neo-pressed.svelte-12cmrio{box-shadow:var(--neo-btn-box-shadow-active,var(--neo-box-shadow-pressed-2));transition:opacity .3s,color .15s,background-color .15s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,border-radius .3s,box-shadow .15s ease-out}.neo-button.svelte-12cmrio:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))){box-shadow:var(--neo-btn-box-shadow-active,var(--neo-box-shadow-pressed-2));transition:opacity .3s,color .15s,background-color .15s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,border-radius .3s,box-shadow .15s ease-out}.neo-button.neo-pressed.neo-scale.svelte-12cmrio .neo-content:where(.svelte-12cmrio){color:var(--neo-btn-text-color-active,var(--neo-text-color-active));scale:var(--neo-btn-scale-pressed,.98)}.neo-button:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))).neo-scale.svelte-12cmrio .neo-content:where(.svelte-12cmrio){color:var(--neo-btn-text-color-active,var(--neo-text-color-active));scale:var(--neo-btn-scale-pressed,.98)}.neo-button.neo-inset-hover.svelte-12cmrio:focus-visible,.neo-button.neo-inset-hover.svelte-12cmrio:hover,.neo-button.neo-inset-hover.neo-pressed.svelte-12cmrio,.neo-button.neo-inset.svelte-12cmrio:focus-visible,.neo-button.neo-inset.svelte-12cmrio:hover,.neo-button.neo-inset.neo-pressed.svelte-12cmrio{background-color:var(--neo-btn-bg-color-hover,var(--neo-background-color-hover))}.neo-button.neo-inset-hover.svelte-12cmrio:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))){background-color:var(--neo-btn-bg-color-hover,var(--neo-background-color-hover))}.neo-button.neo-inset.svelte-12cmrio:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))){background-color:var(--neo-btn-bg-color-hover,var(--neo-background-color-hover))}.neo-button.svelte-12cmrio:is(a:where(.svelte-12cmrio)):visited:not(:disabled,.neo-pressed,[disabled=true],:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active)))) .neo-content:where(.svelte-12cmrio){color:var(--neo-btn-text-color-visited,var(--neo-text-color-secondary))}.neo-button.neo-borderless.svelte-12cmrio{border-color:#0000!important}.neo-button.neo-hover.neo-flat-hover.neo-hovered.svelte-12cmrio,.neo-button.neo-hover.neo-flat-hover.svelte-12cmrio:focus-visible:not(:active,.neo-pressed),.neo-button.neo-hover.neo-flat-hover.svelte-12cmrio:hover:not(:active,.neo-pressed),.neo-button.neo-flat-active.neo-pressed.svelte-12cmrio,.neo-button.neo-flat-active.svelte-12cmrio:active,.neo-button.neo-flat.svelte-12cmrio:not(.neo-borderless,.neo-hover-flat:hover,.neo-hover-flat:focus-visible,.neo-hover-flat.neo-hovered,.neo-pressed,:active){border-color:var(--neo-btn-border-color,var(--neo-border-color))}.neo-button.neo-hover.neo-flat-hover.neo-hovered.svelte-12cmrio:focus-visible,.neo-button.neo-hover.neo-flat-hover.neo-hovered.svelte-12cmrio:hover,.neo-button.neo-hover.neo-flat-hover.svelte-12cmrio:focus-visible:not(:active,.neo-pressed):focus-visible,.neo-button.neo-hover.neo-flat-hover.svelte-12cmrio:focus-visible:not(:active,.neo-pressed):hover,.neo-button.neo-hover.neo-flat-hover.svelte-12cmrio:hover:not(:active,.neo-pressed):focus-visible,.neo-button.neo-hover.neo-flat-hover.svelte-12cmrio:hover:not(:active,.neo-pressed):hover,.neo-button.neo-flat-active.neo-pressed.svelte-12cmrio:focus-visible,.neo-button.neo-flat-active.neo-pressed.svelte-12cmrio:hover,.neo-button.neo-flat-active.svelte-12cmrio:active:focus-visible,.neo-button.neo-flat-active.svelte-12cmrio:active:hover,.neo-button.neo-flat.svelte-12cmrio:not(.neo-borderless,.neo-hover-flat:hover,.neo-hover-flat:focus-visible,.neo-hover-flat.neo-hovered,.neo-pressed,:active):focus-visible,.neo-button.neo-flat.svelte-12cmrio:not(.neo-borderless,.neo-hover-flat:hover,.neo-hover-flat:focus-visible,.neo-hover-flat.neo-hovered,.neo-pressed,:active):hover{border-color:var(--neo-btn-border-color-hover,var(--neo-border-color-highlight))}.neo-button.neo-glass.svelte-12cmrio{--neo-background-color-tinted-hover:var(--neo-glass-background-color-tinted-hover);--neo-background-color-tinted:var(--neo-glass-background-color-tinted);--neo-skeleton-color:var(--neo-glass-skeleton-color);--neo-border-color:var(--neo-glass-border-color);background-color:var(--neo-btn-bg-color,var(--neo-glass-background-color));-webkit-backdrop-filter:var(--neo-btn-backdrop-filter,var(--neo-blur-2) var(--neo-saturate-3));backdrop-filter:var(--neo-btn-backdrop-filter,var(--neo-blur-2) var(--neo-saturate-3))}.neo-button.neo-glass.neo-inset-hover.svelte-12cmrio:hover,.neo-button.neo-glass.neo-inset-hover.svelte-12cmrio:focus-visible,.neo-button.neo-glass.neo-inset-hover.neo-pressed.svelte-12cmrio,.neo-button.neo-glass.neo-inset.svelte-12cmrio:hover,.neo-button.neo-glass.neo-inset.svelte-12cmrio:focus-visible,.neo-button.neo-glass.neo-inset.neo-pressed.svelte-12cmrio{background-color:var(--neo-btn-bg-color-hover,var(--neo-glass-background-color-hover))}.neo-button.neo-glass.neo-inset-hover.svelte-12cmrio:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))){background-color:var(--neo-btn-bg-color-hover,var(--neo-glass-background-color-hover))}.neo-button.neo-glass.neo-inset.svelte-12cmrio:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))){background-color:var(--neo-btn-bg-color-hover,var(--neo-glass-background-color-hover))}.neo-button.neo-glass.svelte-12cmrio:not(.neo-inset,.neo-inset-hover:hover,.neo-inset-hover:focus-visible,.neo-borderless,.neo-hover-flat:hover,.neo-hover-flat:focus-visible,.neo-hover-flat.neo-hovered,.neo-pressed,:active){border-color:var(--neo-btn-border-color,var(--neo-glass-top-border-color) var(--neo-glass-right-border-color) var(--neo-glass-bottom-border-color) var(--neo-glass-left-border-color))}.neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered.svelte-12cmrio,.neo-button.neo-glass.neo-hover.neo-flat-hover.svelte-12cmrio:focus-visible:not(:active,.neo-pressed),.neo-button.neo-glass.neo-hover.neo-flat-hover.svelte-12cmrio:hover:not(:active,.neo-pressed),.neo-button.neo-glass.neo-flat-active.neo-pressed.svelte-12cmrio,.neo-button.neo-glass.neo-flat-active.svelte-12cmrio:active,.neo-button.neo-glass.neo-flat.svelte-12cmrio:not(.neo-borderless,.neo-hover-flat:hover,.neo-hover-flat:focus-visible,.neo-hover-flat.neo-hovered,.neo-pressed,:active){border-color:var(--neo-btn-border-color,var(--neo-glass-border-color-flat))}.neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered.svelte-12cmrio:focus-visible,.neo-button.neo-glass.neo-hover.neo-flat-hover.neo-hovered.svelte-12cmrio:hover,.neo-button.neo-glass.neo-hover.neo-flat-hover.svelte-12cmrio:focus-visible:not(:active,.neo-pressed):focus-visible,.neo-button.neo-glass.neo-hover.neo-flat-hover.svelte-12cmrio:focus-visible:not(:active,.neo-pressed):hover,.neo-button.neo-glass.neo-hover.neo-flat-hover.svelte-12cmrio:hover:not(:active,.neo-pressed):focus-visible,.neo-button.neo-glass.neo-hover.neo-flat-hover.svelte-12cmrio:hover:not(:active,.neo-pressed):hover,.neo-button.neo-glass.neo-flat-active.neo-pressed.svelte-12cmrio:focus-visible,.neo-button.neo-glass.neo-flat-active.neo-pressed.svelte-12cmrio:hover,.neo-button.neo-glass.neo-flat-active.svelte-12cmrio:active:focus-visible,.neo-button.neo-glass.neo-flat-active.svelte-12cmrio:active:hover,.neo-button.neo-glass.neo-flat.svelte-12cmrio:not(.neo-borderless,.neo-hover-flat:hover,.neo-hover-flat:focus-visible,.neo-hover-flat.neo-hovered,.neo-pressed,:active):focus-visible,.neo-button.neo-glass.neo-flat.svelte-12cmrio:not(.neo-borderless,.neo-hover-flat:hover,.neo-hover-flat:focus-visible,.neo-hover-flat.neo-hovered,.neo-pressed,:active):hover{border-color:var(--neo-btn-border-color-hover,var(--neo-glass-border-color-flat-highlight))}@starting-style{.neo-button.neo-start.svelte-12cmrio{box-shadow:var(--neo-box-shadow-flat)}}.neo-button.neo-filled.svelte-12cmrio{background-color:var(--neo-btn-bg-color,var(--neo-background-color))}.neo-button.neo-tinted.svelte-12cmrio{background-color:var(--neo-btn-bg-color,var(--neo-background-color-tinted))}.neo-button.neo-tinted.neo-inset-hover.svelte-12cmrio:hover,.neo-button.neo-tinted.neo-inset-hover.svelte-12cmrio:focus-visible,.neo-button.neo-tinted.neo-inset-hover.neo-pressed.svelte-12cmrio,.neo-button.neo-tinted.neo-inset.svelte-12cmrio:hover,.neo-button.neo-tinted.neo-inset.svelte-12cmrio:focus-visible,.neo-button.neo-tinted.neo-inset.neo-pressed.svelte-12cmrio{background-color:var(--neo-btn-bg-color-hover,var(--neo-background-color-tinted-hover))}.neo-button.neo-tinted.neo-inset-hover.svelte-12cmrio:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))){background-color:var(--neo-btn-bg-color-hover,var(--neo-background-color-tinted-hover))}.neo-button.neo-tinted.neo-inset.svelte-12cmrio:active:not(.neo-loading,:disabled,[disabled=true],:has(:where(.neo-button.neo-propagation:active))){background-color:var(--neo-btn-bg-color-hover,var(--neo-background-color-tinted-hover))}.neo-button.neo-rounded.svelte-12cmrio{padding:var(--neo-btn-padding,.3125rem .75rem);border-radius:var(--neo-btn-border-radius,var(--neo-border-radius-xxl))}.neo-button.neo-container.svelte-12cmrio{justify-content:unset;margin:var(--neo-btn-margin,0);padding:var(--neo-btn-padding,0);display:flex}.neo-button.neo-container.svelte-12cmrio .neo-content.neo-content:where(.svelte-12cmrio){justify-content:unset;text-align:start}.neo-button.neo-container.svelte-12cmrio:focus-visible,.neo-button.neo-container.svelte-12cmrio:hover{transition:opacity .3s,color .15s,background-color .15s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s,border-radius .3s,box-shadow .15s ease-out}.neo-button.svelte-12cmrio:disabled:disabled,.neo-button[disabled].svelte-12cmrio:not([disabled=false]){cursor:not-allowed}.neo-button.svelte-12cmrio:disabled:disabled .neo-content.neo-content:where(.svelte-12cmrio),.neo-button[disabled].svelte-12cmrio:not([disabled=false]) .neo-content.neo-content:where(.svelte-12cmrio){color:var(--neo-btn-text-color-disabled,var(--neo-text-color-disabled));scale:1}.neo-button.svelte-12cmrio:disabled:disabled:not(.neo-pressed,.neo-readonly),.neo-button[disabled].svelte-12cmrio:not([disabled=false]):not(.neo-pressed,.neo-readonly){border-color:var(--neo-btn-border-color-disabled,var(--neo-border-color-disabled));box-shadow:var(--neo-box-shadow-flat)}.neo-button.svelte-12cmrio:disabled:disabled:after,.neo-button.svelte-12cmrio:disabled:disabled:before,.neo-button[disabled].svelte-12cmrio:not([disabled=false]):after,.neo-button[disabled].svelte-12cmrio:not([disabled=false]):before{box-shadow:none;animation-play-state:paused}.neo-button.neo-skeleton.svelte-12cmrio{pointer-events:none;--neo-skeleton-start:1;--neo-skeleton-end:calc(1 + var(--neo-skeleton-step,-.3));color:var(--neo-skeleton-color);background-color:var(--neo-skeleton-color);border-color:var(--neo-skeleton-color);opacity:1;animation:svelte-12cmrio-skeleton 3s var(--neo-transition-skeleton) infinite;background-clip:padding-box;transition:border-radius .333333s,background-color 1s,color .333333s,border-color 1s,opacity 1s;animation-delay:1s;box-shadow:var(--neo-box-shadow-flat)!important}.neo-button.neo-skeleton.svelte-12cmrio:before,.neo-button.neo-skeleton.svelte-12cmrio:after,.neo-button.neo-skeleton.svelte-12cmrio>:before,.neo-button.neo-skeleton.svelte-12cmrio>:after,.neo-button.neo-skeleton.svelte-12cmrio>*{visibility:hidden;pointer-events:none}@keyframes svelte-12cmrio-skeleton{0%,80%,to{opacity:var(--neo-skeleton-start)}40%{opacity:var(--neo-skeleton-end)}}.neo-button.neo-empty.svelte-12cmrio{padding:var(--neo-btn-padding-empty,.5rem)}:is(.neo-button.neo-empty.neo-pressed.neo-pressed.neo-scale.svelte-12cmrio .neo-content:where(.svelte-12cmrio),.neo-button.neo-empty:active:not(.neo-loading,:disabled,[disabled=true]:where(.svelte-12cmrio) :where(.svelte-12cmrio):has(:where(.neo-button.neo-propagation:active))).neo-scale.svelte-12cmrio .neo-content:where(.svelte-12cmrio)){scale:var(--neo-btn-scale-pressed-empty,var(--neo-btn-scale-pressed,.9))}.neo-button.neo-pulse.svelte-12cmrio{position:relative}.neo-button.neo-pulse.svelte-12cmrio:after,.neo-button.neo-pulse.svelte-12cmrio:before{box-shadow:var(--neo-btn-box-shadow);will-change:transform, opacity}.neo-button.neo-pulse.svelte-12cmrio:before{animation:svelte-12cmrio-pulse var(--neo-pulse-duration,6s) linear var(--neo-pulse-delay,1s) infinite}.neo-button.neo-pulse.svelte-12cmrio:after{animation:svelte-12cmrio-pulse var(--neo-pulse-duration,6s) linear calc(var(--neo-pulse-delay,1s) + var(--neo-pulse-interval,3s)) infinite}@keyframes svelte-12cmrio-pulse{0%{opacity:0;transform:scaleX(1)scaleY(1)}25%{opacity:1}to{transform:scaleX(var(--neo-pulse-scale-x,2)) scaleY(var(--neo-pulse-scale-y,2));opacity:0}}.neo-button.neo-coalesce.svelte-12cmrio{position:relative}.neo-button.neo-coalesce.svelte-12cmrio:after,.neo-button.neo-coalesce.svelte-12cmrio:before{box-shadow:var(--neo-coalesce-box-shadow,var(--neo-btn-box-shadow));will-change:transform, opacity}.neo-button.neo-coalesce.svelte-12cmrio:before{animation:svelte-12cmrio-coalesce var(--neo-coalesce-duration,6s) ease-out var(--neo-coalesce-delay,1s) infinite}.neo-button.neo-coalesce.svelte-12cmrio:after{animation:svelte-12cmrio-coalesce var(--neo-coalesce-duration,6s) ease-out calc(var(--neo-coalesce-delay,1s) + var(--neo-coalesce-interval,3s)) infinite}@keyframes svelte-12cmrio-coalesce{0%{transform:scaleX(var(--neo-coalesce-scale-x,2)) scaleY(var(--neo-coalesce-scale-y,2));opacity:0}75%{opacity:1}to{opacity:0;transform:scale(1)}}.theme-toggle.svelte-1cmi4dh{border:1.5px solid var(--ink);background:var(--surface-control);min-height:44px;color:var(--ink);box-shadow:0 3px 0 var(--control-shadow);font:700 11px var(--mono);border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:9px 12px;transition:background .2s,transform .2s,box-shadow .2s;display:inline-flex}.theme-toggle.svelte-1cmi4dh:hover{background:var(--blue-soft);box-shadow:0 5px 0 var(--control-shadow);transform:translateY(-2px)}.theme-toggle.svelte-1cmi4dh:active{box-shadow:0 1px 0 var(--control-shadow);transform:translateY(1px)}svg.svelte-1cmi4dh{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}@media (width<=700px){.theme-toggle.svelte-1cmi4dh{justify-content:space-between;width:100%;padding:12px}}@media (prefers-reduced-motion:reduce){.theme-toggle.svelte-1cmi4dh:hover,.theme-toggle.svelte-1cmi4dh:active{transform:none}}.site-header.svelte-ocbj1u{top:0;padding-top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--ink);position:fixed;inset-inline:0;box-shadow:0 5px 20px #182a410a}.nav-inner.svelte-ocbj1u{justify-content:space-between;align-items:center;gap:24px;min-height:86px;display:flex}.brand.svelte-ocbj1u{align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-symbol.svelte-ocbj1u{border:1.5px solid var(--ink);background:var(--brand-background);width:42px;height:42px;color:var(--on-bright);box-shadow:2px 2px 0 var(--ink);letter-spacing:-1.5px;border-radius:12px 4px;place-items:center;padding-bottom:4px;font-size:24px;font-weight:850;display:grid}.brand-name.svelte-ocbj1u{letter-spacing:-.3px;font-size:14px;font-weight:750}nav.svelte-ocbj1u{align-items:center;gap:10px;display:flex}nav.svelte-ocbj1u a:where(.svelte-ocbj1u){align-items:center;min-height:40px;padding-block:10px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}nav.svelte-ocbj1u a:where(.svelte-ocbj1u):hover{color:var(--blue)}nav.svelte-ocbj1u a:where(.svelte-ocbj1u):first-child{display:none}nav.svelte-ocbj1u .nav-mail{border:1.5px solid var(--ink);background:var(--nav-mail-background);color:var(--nav-mail-ink);box-shadow:0 3px 0 var(--control-shadow);border-radius:5px;align-items:center;gap:20px;padding:10px 15px;display:inline-flex}nav.svelte-ocbj1u .nav-mail:hover{background:var(--nav-mail-hover)}.menu-toggle{display:none}@media (width<=700px){.nav-inner.svelte-ocbj1u{min-height:74px}.brand-symbol.svelte-ocbj1u{width:36px;height:36px;font-size:21px}.brand-name.svelte-ocbj1u{font-size:12px}.menu-toggle{border:1.5px solid var(--ink);background:var(--white);min-height:44px;box-shadow:0 3px 0 var(--ink);border-radius:5px;align-items:center;gap:10px;padding:9px 12px;font-size:11px;font-weight:700;display:inline-flex}.menu-lines.svelte-ocbj1u{gap:5px;width:15px;display:grid}.menu-lines.svelte-ocbj1u i:where(.svelte-ocbj1u){background:currentColor;height:1.5px;transition:transform .2s}.expanded.svelte-ocbj1u i:where(.svelte-ocbj1u):first-child{transform:translateY(3.25px)rotate(45deg)}.expanded.svelte-ocbj1u i:where(.svelte-ocbj1u):last-child{transform:translateY(-3.25px)rotate(-45deg)}nav.svelte-ocbj1u{max-height:calc(100dvh - 90px - env(safe-area-inset-top,0px));background:var(--paper);border-bottom:1.5px solid var(--ink);padding:12px 22px 24px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 7px #182a4110}nav.open.svelte-ocbj1u{flex-direction:column;align-items:stretch;gap:2px;display:flex}nav.svelte-ocbj1u a:where(.svelte-ocbj1u),nav.svelte-ocbj1u a:where(.svelte-ocbj1u):first-child{min-height:46px;padding:13px 4px;display:flex}nav.svelte-ocbj1u .nav-mail{justify-content:space-between;margin-top:8px;padding:12px}}nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u){border:1.5px solid var(--nav-tab-border);background:var(--nav-tab-background);min-height:44px;color:var(--nav-tab-ink);box-shadow:0 3px 0 var(--control-shadow);border-radius:5px;padding:10px 17px;transition:background .2s,box-shadow .2s,translate .2s}nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u):hover,nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u):focus-visible{background:var(--blue-soft);box-shadow:0 5px 0 var(--control-shadow);translate:0 -2px}nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u):active{box-shadow:0 1px 0 var(--control-shadow);translate:0 1px}nav.svelte-ocbj1u .nav-tab[aria-current=location]:where(.svelte-ocbj1u){background:var(--nav-tab-current);box-shadow:0 3px 0 var(--current-shadow)}@media (width<=700px){nav.open.svelte-ocbj1u{gap:10px}nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u),nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u):first-child{padding:12px 16px}}@media (prefers-reduced-motion:reduce){nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u):hover,nav.svelte-ocbj1u .nav-tab:where(.svelte-ocbj1u):active{translate:none}}.creative-space.svelte-10s1am6{justify-self:center;width:100%;min-width:0;max-width:570px}.composition.svelte-10s1am6{aspect-ratio:1.05;isolation:isolate;position:relative}.backplate.svelte-10s1am6{background:#e0e7f0;border-radius:50% 42% 45% 38%;position:absolute;inset:13% 4% 10% 8%;transform:rotate(-9deg)}.app-window.svelte-10s1am6{border:1.5px solid var(--ink);background:var(--white);border-radius:10px;width:88%;animation:7s ease-in-out infinite svelte-10s1am6-window-drift;position:absolute;top:23%;left:7%;overflow:hidden;transform:rotate(-7deg);box-shadow:7px 9px #182a4120}.window-bar.svelte-10s1am6{border-bottom:1px solid #c5ccd5;justify-content:space-between;align-items:center;height:35px;padding:0 13px;font-size:11px;font-weight:650;display:flex}.window-dots.svelte-10s1am6{gap:4px;display:flex}.window-dots.svelte-10s1am6 i:where(.svelte-10s1am6){background:#afbac8;border-radius:50%;width:6px;height:6px}.window-dots.svelte-10s1am6 i:where(.svelte-10s1am6):first-child{background:var(--coral)}.window-mark.svelte-10s1am6{font-size:17px}img.svelte-10s1am6{width:100%;height:auto;display:block}.code-card.svelte-10s1am6{background:var(--feature-panel);width:56%;color:var(--feature-text);border-radius:12px;padding:22px;animation:6s ease-in-out infinite svelte-10s1am6-code-drift;position:absolute;bottom:4%;left:0;transform:rotate(4deg);box-shadow:6px 8px #182a4120}.code-title.svelte-10s1am6{align-items:center;gap:14px;font-size:14px;font-weight:600;line-height:1.5;display:flex}.code-title.svelte-10s1am6>span:where(.svelte-10s1am6):first-child{font:25px var(--mono);color:var(--coral)}.code-lines.svelte-10s1am6{gap:8px;margin-top:20px;display:grid}.code-lines.svelte-10s1am6 i:where(.svelte-10s1am6){transform-origin:0;background:#8199bd;border-radius:3px;width:80%;height:5px;animation:5s ease-in-out infinite svelte-10s1am6-line-in}.code-lines.svelte-10s1am6 i:where(.svelte-10s1am6):nth-child(2){background:#f6a57f;width:57%;animation-delay:.2s}.code-lines.svelte-10s1am6 i:where(.svelte-10s1am6):nth-child(3){width:90%;animation-delay:.4s}.code-lines.svelte-10s1am6 i:where(.svelte-10s1am6):nth-child(4){background:#a3b699;width:42%;animation-delay:.6s}.cursor.svelte-10s1am6{background:var(--coral);width:7px;height:12px;margin-top:12px;animation:1.4s steps(2,end) infinite svelte-10s1am6-blink;display:block}.monogram.svelte-10s1am6{aspect-ratio:1;background:var(--coral);border:1.5px solid var(--ink);width:28%;box-shadow:5px 6px 0 var(--ink);letter-spacing:-5px;border-radius:24px;place-content:center;font-size:clamp(38px,5vw,68px);font-weight:800;animation:5s ease-in-out infinite svelte-10s1am6-badge-drift;display:grid;position:absolute;bottom:6%;right:2%;transform:rotate(9deg)}.monogram.svelte-10s1am6 span:where(.svelte-10s1am6){color:var(--blue);position:absolute;bottom:15%;right:19%}.spark.svelte-10s1am6{width:18%;color:var(--blue);animation:24s linear infinite svelte-10s1am6-spark-turn;position:absolute;top:0;right:6%}.floating-tag.svelte-10s1am6{background:var(--white);border:1px solid var(--ink);border-radius:30px;align-items:center;gap:10px;padding:12px 18px;font-size:14px;animation:6s ease-in-out infinite svelte-10s1am6-tag-drift;display:flex;position:absolute;top:6%;left:1%;transform:rotate(-5deg)}.floating-tag.svelte-10s1am6 span:where(.svelte-10s1am6){color:var(--blue);font-size:22px}.scribble.svelte-10s1am6{fill:none;width:30%;stroke:var(--blue);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;position:absolute;bottom:34%;right:2%}.motion-control.svelte-10s1am6{justify-content:flex-end;margin-top:20px;display:flex}.motion-control.svelte-10s1am6 .motion-button{min-height:44px;color:var(--muted);background:0 0;border:1px solid #bec8d4;border-radius:6px;margin:0;padding:10px 13px;font-size:11px}.paused.svelte-10s1am6 :where(.svelte-10s1am6),.paused.svelte-10s1am6 :where(.svelte-10s1am6):before{animation-play-state:paused!important}@keyframes svelte-10s1am6-window-drift{50%{transform:translateY(-13px)rotate(-4deg)}}@keyframes svelte-10s1am6-code-drift{50%{transform:translateY(9px)rotate(1deg)}}@keyframes svelte-10s1am6-badge-drift{50%{transform:translateY(-12px)rotate(3deg)}}@keyframes svelte-10s1am6-tag-drift{50%{transform:translate(7px,-5px)rotate(-2deg)}}@keyframes svelte-10s1am6-spark-turn{to{transform:rotate(360deg)}}@keyframes svelte-10s1am6-line-in{0%,to{opacity:.6;transform:scaleX(.75)}35%,75%{opacity:1;transform:scaleX(1)}}@keyframes svelte-10s1am6-blink{50%{opacity:0}}@media (width<=850px){.creative-space.svelte-10s1am6{max-width:490px}.monogram.svelte-10s1am6{font-size:60px}}@media (width<=400px){.code-card.svelte-10s1am6{padding:14px}.code-title.svelte-10s1am6{gap:8px;font-size:11px}.code-title.svelte-10s1am6>span:where(.svelte-10s1am6):first-child{font-size:18px}.code-lines.svelte-10s1am6{gap:5px;margin-top:12px}.monogram.svelte-10s1am6{letter-spacing:-3px;border-radius:17px;font-size:42px}.floating-tag.svelte-10s1am6{padding:8px 12px;font-size:12px}.window-bar.svelte-10s1am6{height:27px;font-size:10px}}@media (prefers-reduced-motion:reduce){.svelte-10s1am6{animation:none!important}.motion-control.svelte-10s1am6{display:none}}.resume-link.svelte-1dwcx9l{border:2px solid var(--ink);min-height:52px;box-shadow:4px 4px 0 var(--ink);width:fit-content;color:var(--on-bright);font:700 13px/1.4 var(--mono);background:#f4ce67;border-radius:6px;align-items:center;gap:12px;padding:12px 17px;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.resume-link.svelte-1dwcx9l:hover{box-shadow:5px 5px 0 var(--ink);background:#ffdb79;transform:translate(-1px,-1px)}.resume-link.svelte-1dwcx9l:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.file-type.svelte-1dwcx9l{color:var(--on-bright);font:11px var(--mono);border-left:1px solid #182a4140;padding-left:10px;font-weight:400}@media (prefers-reduced-motion:reduce){.resume-link.svelte-1dwcx9l:hover,.resume-link.svelte-1dwcx9l:active{transform:none}}.hero-resume.svelte-1q37ri0{margin-top:14px}.hero.svelte-1q37ri0{padding-block:83px 65px}.hero-grid.svelte-1q37ri0{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:52px;display:grid}h1.svelte-1q37ri0{letter-spacing:-4.7px;font-size:clamp(52px,5.5vw,77px);font-weight:800;line-height:1.02}.full-stop.svelte-1q37ri0{color:var(--blue)}.hero-statement.svelte-1q37ri0{letter-spacing:-.8px;margin-top:23px;font-size:clamp(20px,2vw,26px);font-weight:500;line-height:1.5}.hero-statement.svelte-1q37ri0 span:where(.svelte-1q37ri0){text-decoration:underline;-webkit-text-decoration-color:var(--coral);text-decoration-color:var(--coral);text-underline-offset:6px;text-decoration-thickness:4px}.hero-description.svelte-1q37ri0{color:var(--muted);max-width:485px;margin-top:25px;font-size:16px;line-height:1.8}.name-highlight.svelte-1q37ri0{z-index:0;color:var(--ink);white-space:nowrap;padding-inline:.24em;font-weight:750;display:inline-block;position:relative}.name-highlight.svelte-1q37ri0:before{content:"";z-index:-1;background:var(--contact-background);border-radius:6px 3px 7px;position:absolute;inset:16% -1px 3%;transform:rotate(-1.5deg)}.name-highlight.svelte-1q37ri0:after{content:"✦";color:var(--blue);font-size:.65em;line-height:1;position:absolute;top:-.78em;right:-.45em;transform:rotate(12deg)}.hero-actions.svelte-1q37ri0{flex-wrap:wrap;gap:16px;margin-top:32px;display:flex}.hero-actions.svelte-1q37ri0 .button.neo-button{border:2px solid var(--ink);min-height:52px;box-shadow:4px 4px 0 var(--ink);font:700 13px/1.4 var(--mono);border-radius:6px;padding:12px 17px;transition:transform .15s,box-shadow .15s,background .15s}.hero-actions.svelte-1q37ri0 .button.neo-button:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-1px,-1px)}.hero-actions.svelte-1q37ri0 .button.neo-button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.hero-actions.svelte-1q37ri0 .button-primary.neo-button:hover{background:var(--primary-hover)}.hero-actions.svelte-1q37ri0 .button-secondary.neo-button:hover{background:var(--surface-control)}.button-arrow.svelte-1q37ri0{border-left:1px solid var(--line);padding-left:16px}@media (width<=1050px){.hero-grid.svelte-1q37ri0{gap:30px}h1.svelte-1q37ri0{letter-spacing:-3.8px;font-size:62px}.hero-actions.svelte-1q37ri0 .button.neo-button{gap:13px;padding-inline:16px;font-size:13px}}@media (width<=850px){.hero.svelte-1q37ri0{padding-block:60px 48px}.hero-grid.svelte-1q37ri0{grid-template-columns:1fr;gap:40px}.hero-copy.svelte-1q37ri0{max-width:620px}h1.svelte-1q37ri0{font-size:76px}.hero-description.svelte-1q37ri0{max-width:540px}}@media (width<=600px){.hero.svelte-1q37ri0{padding-block:43px 40px}h1.svelte-1q37ri0{letter-spacing:-2.5px;font-size:clamp(44px,10.8vw,66px)}.hero-statement.svelte-1q37ri0{letter-spacing:-.6px;margin-top:20px;font-size:20px}.hero-description.svelte-1q37ri0{margin-top:23px;font-size:14px}.hero-actions.svelte-1q37ri0{gap:14px;margin-top:27px}.hero-actions.svelte-1q37ri0 .button.neo-button{flex:auto}}@media (prefers-reduced-motion:reduce){.hero-actions.svelte-1q37ri0 .button.neo-button:hover,.hero-actions.svelte-1q37ri0 .button.neo-button:active{transform:none}}.section-heading.svelte-2penap{justify-content:space-between;align-items:end;gap:32px;margin-bottom:38px;display:flex}h2.svelte-2penap{letter-spacing:-1.6px;text-transform:none;font-size:clamp(32px,4vw,46px);font-weight:700;line-height:1.15}.section-description.svelte-2penap{max-width:345px;color:var(--muted);margin-bottom:3px;font-size:14px;line-height:1.8}@media (width<=600px){.section-heading.svelte-2penap{flex-direction:column;align-items:start;gap:16px;margin-bottom:28px}}img.svelte-1e689cc,svg.svelte-1e689cc{object-fit:contain;flex:0 0 19px;display:block}.skills-layout.svelte-84qi7f{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:40px;display:grid}.skills-rail.svelte-84qi7f{align-self:start;position:sticky;top:120px}.skills-rail.svelte-84qi7f .section-heading{margin:0 0 20px}.skills-rail.svelte-84qi7f h2{letter-spacing:-1.3px;max-width:180px;font-size:34px;line-height:1.12}.legend.svelte-84qi7f{color:var(--muted);font:400 11px/1.4 var(--mono);gap:9px;margin:0;padding:0;list-style:none;display:grid}.legend.svelte-84qi7f li:where(.svelte-84qi7f){align-items:center;gap:8px;font-weight:500;display:flex}.legend.svelte-84qi7f li:where(.svelte-84qi7f)>span:where(.svelte-84qi7f){border:2px solid var(--ink);background:var(--category-color);width:14px;height:14px;box-shadow:2px 2px 0 var(--ink);border-radius:4px}html[data-theme=dark] .legend.svelte-84qi7f li:where(.svelte-84qi7f){color:var(--category-dark-color)}html[data-theme=dark] .legend.svelte-84qi7f li:where(.svelte-84qi7f)>span:where(.svelte-84qi7f){border-color:var(--category-dark-color);background:var(--category-dark-color);box-shadow:2px 2px 0 color-mix(in srgb, var(--category-dark-color) 45%, transparent)}.skills-table.svelte-84qi7f{min-width:0}.table-heading.svelte-84qi7f,.project-row.svelte-84qi7f{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:center;gap:20px;display:grid}.table-heading.svelte-84qi7f{border-bottom:1px solid var(--line);color:var(--muted);font:400 12px/1.4 var(--mono);padding:0 0 10px}.project-row.svelte-84qi7f{padding:20px 0 22px;position:relative}.project-row.svelte-84qi7f:after{content:"";background:var(--line);transform-origin:0;height:1px;transition:transform .9s cubic-bezier(.6,0,.2,1);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.project-row.svelte-84qi7f.is-visible:after{transform:none}.skill-list.svelte-84qi7f,.project-list.svelte-84qi7f{flex-wrap:wrap;gap:10px 12px;margin:0;padding:0;list-style:none;display:flex}.skill-chip.svelte-84qi7f{--chip-line:var(--ink);--chip-shadow:var(--ink);--chip-fill:var(--category-color);isolation:isolate;border:2px solid var(--chip-line);background:var(--chip-fill);color:#14213d;box-shadow:3px 3px 0 var(--chip-shadow);font:500 12px/1.4 var(--mono);cursor:default;-webkit-user-select:none;user-select:none;animation:.55s cubic-bezier(.2,1.5,.4,1) backwards paused svelte-84qi7f-chip-pop;animation-delay:calc(var(--chip-index) * 45ms);border-radius:7px;align-items:center;gap:8px;padding:5px 12px 5px 6px;transition:transform .2s cubic-bezier(.3,1.7,.5,1),box-shadow .2s,color .25s;display:inline-flex;position:relative;overflow:hidden}html[data-theme=dark] .skill-chip.svelte-84qi7f{--chip-line:var(--category-dark-color);--chip-shadow:var(--category-dark-color);--chip-fill:var(--category-dark-fill);color:var(--ink)}.project-row.svelte-84qi7f.is-visible .skill-chip:where(.svelte-84qi7f),.project-row.svelte-84qi7f.is-visible .project-list:where(.svelte-84qi7f) a:where(.svelte-84qi7f){animation-play-state:running}.skill-chip.svelte-84qi7f:before{content:"";z-index:-1;background:var(--chip-accent);transform-origin:0;transition:transform .32s cubic-bezier(.7,0,.2,1);position:absolute;inset:0;transform:scaleX(0)}.skill-chip.svelte-84qi7f:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff8c,#0000);width:30%;position:absolute;top:0;bottom:0;left:-40%;transform:skew(-20deg)}.skill-chip.svelte-84qi7f:hover,.skill-chip.svelte-84qi7f:focus-visible{box-shadow:6px 6px 0 var(--chip-shadow);color:var(--chip-text);outline:0;transform:translate(-2px,-3px)}.skill-chip.svelte-84qi7f:hover:before,.skill-chip.svelte-84qi7f:focus-visible:before{transform:none}.skill-chip.svelte-84qi7f:hover:after,.skill-chip.svelte-84qi7f:focus-visible:after{transition:left .6s;left:120%}.skill-chip.svelte-84qi7f:active{box-shadow:1px 1px 0 var(--chip-shadow);transform:translate(2px,2px)}.skill-icon.svelte-84qi7f{--skill-background:var(--chip-accent);border:2px solid var(--chip-line);background:var(--chip-accent);min-width:28px;height:28px;color:var(--chip-text);border-radius:5px;place-items:center;padding:0 2px;transition:transform .35s cubic-bezier(.3,1.9,.5,1),background .25s,color .25s;display:grid}.skill-chip.svelte-84qi7f:hover .skill-icon:where(.svelte-84qi7f),.skill-chip.svelte-84qi7f:focus-visible .skill-icon:where(.svelte-84qi7f){color:#14213d;background:#fffdf7;border-color:#14213d;transform:rotate(-14deg)scale(1.18)}.project-list.svelte-84qi7f a:where(.svelte-84qi7f){border:2px solid var(--ink);background:var(--project-color);color:#14213d;box-shadow:2px 2px 0 var(--ink);font:500 11px/1.5 var(--mono);animation:.5s cubic-bezier(.2,1.5,.4,1) backwards paused svelte-84qi7f-chip-pop;animation-delay:calc(.28s + var(--project-index) * 70ms);border-radius:5px;padding:3px 10px;text-decoration:none;transition:transform .15s,box-shadow .15s,opacity .2s,filter .2s}.project-list.svelte-84qi7f a:where(.svelte-84qi7f):hover,.project-list.svelte-84qi7f a:where(.svelte-84qi7f):focus-visible{box-shadow:4px 4px 0 var(--ink);transform:translateY(-2px)}.project-list.svelte-84qi7f a.dimmed:where(.svelte-84qi7f){opacity:.2;filter:grayscale();transform:scale(.94)}.no-project.svelte-84qi7f{color:var(--muted);font:400 12px/1.5 var(--mono);margin:0}@keyframes svelte-84qi7f-chip-pop{0%{opacity:0;transform:translateY(14px)scale(.85)rotate(-3deg)}}@media (width<=1100px){.skills-layout.svelte-84qi7f{grid-template-columns:1fr;gap:28px}.skills-rail.svelte-84qi7f{position:static}.skills-rail.svelte-84qi7f h2{max-width:none;font-size:36px}.legend.svelte-84qi7f{grid-template-columns:repeat(3,max-content);gap:9px 20px}}@media (width<=700px){.skills-rail.svelte-84qi7f h2{font-size:32px}.legend.svelte-84qi7f{grid-template-columns:repeat(2,minmax(0,max-content))}.table-heading.svelte-84qi7f{display:none}.project-row.svelte-84qi7f{grid-template-columns:1fr;gap:12px}}@media (prefers-reduced-motion:reduce){.project-row.svelte-84qi7f:after,.skill-chip.svelte-84qi7f,.skill-chip.svelte-84qi7f:before,.skill-chip.svelte-84qi7f:after,.skill-icon.svelte-84qi7f,.project-list.svelte-84qi7f a:where(.svelte-84qi7f){transition:none;animation:none}.skill-chip.svelte-84qi7f:hover,.skill-chip.svelte-84qi7f:focus-visible,.skill-chip.svelte-84qi7f:active,.skill-chip.svelte-84qi7f:hover .skill-icon:where(.svelte-84qi7f),.skill-chip.svelte-84qi7f:focus-visible .skill-icon:where(.svelte-84qi7f),.project-list.svelte-84qi7f a:where(.svelte-84qi7f):hover,.project-list.svelte-84qi7f a:where(.svelte-84qi7f):focus-visible,.project-list.svelte-84qi7f a.dimmed:where(.svelte-84qi7f){transform:none}}.education-details.svelte-mf3yw9{border-top:1px solid var(--line);min-width:0;padding-top:26px}h3.svelte-mf3yw9{letter-spacing:-.7px;font-size:clamp(23px,2.3vw,30px);font-weight:700;line-height:1.3}.institution.svelte-mf3yw9{margin-top:10px;font-size:17px;line-height:1.6}.study-meta.svelte-mf3yw9{color:var(--muted);flex-wrap:wrap;align-items:center;gap:15px 24px;margin-top:24px;font-size:14px;display:flex}.description.svelte-mf3yw9{max-width:590px;color:var(--muted);margin-top:26px;font-size:16px;line-height:1.8}.study-meta.svelte-mf3yw9 span:where(.svelte-mf3yw9)+span:where(.svelte-mf3yw9){border-left:1px solid var(--line);padding-left:18px}h4.svelte-mf3yw9{text-transform:uppercase;letter-spacing:1px;margin:0 0 14px;font-size:12px;font-weight:650}.coursework.svelte-mf3yw9{margin-top:32px}ul.svelte-mf3yw9{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}li.svelte-mf3yw9{max-width:100%}.course-chip.svelte-mf3yw9{background:var(--chip-neutral);color:var(--muted);border:0;border-radius:3px;max-width:100%;padding:9px 13px;font-size:13px;line-height:1.5}.scholarship.svelte-mf3yw9{border-top:1px solid var(--line);margin-top:32px;padding-top:24px}.scholarship.svelte-mf3yw9 p:where(.svelte-mf3yw9){color:var(--muted);max-width:590px;font-size:15px;line-height:1.8}@media (width<=600px){.education-details.svelte-mf3yw9{padding-top:22px}.institution.svelte-mf3yw9{font-size:16px}.description.svelte-mf3yw9{font-size:15px}.study-meta.svelte-mf3yw9{gap:12px}}.project-visual.svelte-9ap5bx{aspect-ratio:1.85;background:#dfe6e8;border-bottom:1px solid #bcc8d4;justify-content:center;align-items:center;padding:30px;display:flex;overflow:hidden}img.svelte-9ap5bx{object-fit:contain;filter:drop-shadow(0 5px 8px #182a4120);border-radius:4px;width:100%;height:100%}.featured.svelte-9ap5bx{aspect-ratio:auto;background:#d7e2f4;border-bottom:0;min-height:360px;padding:35px}.dark.svelte-9ap5bx{background:#dce2df}.compact.svelte-9ap5bx{aspect-ratio:auto;border-bottom:0;min-height:180px;padding:14px}.technical.svelte-9ap5bx{flex-direction:column;justify-content:space-between;width:100%;height:100%;display:flex}.visual-label.svelte-9ap5bx,.visual-bottom.svelte-9ap5bx{font:9px var(--mono);letter-spacing:1px;color:#34465f;align-items:center;gap:8px;display:flex}.visual-label.svelte-9ap5bx>span:where(.svelte-9ap5bx):last-child,.visual-bottom.svelte-9ap5bx>span:where(.svelte-9ap5bx):last-child{margin-left:auto}.tiny-square.svelte-9ap5bx{background:var(--blue);width:6px;height:6px}.judge-flow.svelte-9ap5bx{justify-content:space-around;align-items:center;gap:8px;padding:20px 0;display:flex}.code-symbol.svelte-9ap5bx,.judge-node.svelte-9ap5bx,.verdict.svelte-9ap5bx{font:27px var(--mono);color:var(--blue);flex-direction:column;align-items:center;gap:12px;display:flex}.code-symbol.svelte-9ap5bx>span:where(.svelte-9ap5bx),.judge-node.svelte-9ap5bx>span:where(.svelte-9ap5bx):last-child,.verdict.svelte-9ap5bx>span:where(.svelte-9ap5bx):last-child{font:10px var(--mono);color:#34465f}.brackets.svelte-9ap5bx{background:var(--cream);border:2px solid var(--ink);width:66px;height:52px;box-shadow:4px 4px 0 var(--ink);border-radius:6px;place-items:center;font-size:23px;display:grid}.connector.svelte-9ap5bx{color:#51483e;font-size:20px}.verdict.svelte-9ap5bx>span:where(.svelte-9ap5bx):first-child{border:2px solid var(--ink);border-radius:50%;place-items:center;width:38px;height:38px;font-size:22px;display:grid}.archive-flow.svelte-9ap5bx{justify-content:space-evenly;align-items:center;gap:24px;padding:18px 0;display:flex}.code-window.svelte-9ap5bx{background:var(--cream);width:104px;min-height:76px;font:15px var(--mono);color:var(--blue);border:2px solid #344b42;border-radius:7px;padding:18px 14px 12px;position:relative;box-shadow:5px 5px #344b42}.code-window.svelte-9ap5bx:before{content:"";background:var(--coral);border-radius:50%;width:5px;height:5px;position:absolute;top:7px;left:10px;box-shadow:9px 0 #d1a748,18px 0 #739b7d}.code-window.svelte-9ap5bx i:where(.svelte-9ap5bx){background:#91a3ae;height:3px;margin-top:8px;display:block}.code-window.svelte-9ap5bx i:where(.svelte-9ap5bx):first-of-type{width:72%}.code-window.svelte-9ap5bx i:where(.svelte-9ap5bx):nth-of-type(2){width:88%;margin-left:9px}.code-window.svelte-9ap5bx i:where(.svelte-9ap5bx):nth-of-type(3){width:55%;margin-left:9px}.topic-route.svelte-9ap5bx{font:11px var(--mono);color:#34465f}.topic-route.svelte-9ap5bx>span:where(.svelte-9ap5bx){align-items:center;gap:10px;display:flex}.topic-route.svelte-9ap5bx i:where(.svelte-9ap5bx){border:1px solid var(--blue);border-radius:50%;width:6px;height:6px}.route-line.svelte-9ap5bx{border-left:1px solid #645b4d;height:17px;margin-left:2px}@media (width<=950px){.featured.svelte-9ap5bx{min-height:290px;padding:25px}.project-visual.svelte-9ap5bx:not(.featured):not(.compact){padding:24px}.visual-label.svelte-9ap5bx,.visual-bottom.svelte-9ap5bx{letter-spacing:.4px;font-size:8px}}@media (width<=600px){.featured.svelte-9ap5bx{aspect-ratio:1.6;min-height:0;padding:22px}.compact.svelte-9ap5bx{aspect-ratio:2.2;min-height:0;padding:18px}}.project-card.svelte-oviq8z{border:1.5px solid var(--ink);background:var(--white);border-radius:10px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 4px #182a4125}.project-copy.svelte-oviq8z{flex-direction:column;flex:1;min-width:0;padding:29px;display:flex}.project-category.svelte-oviq8z{font:600 11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--muted);align-items:center;gap:8px;margin-bottom:14px;display:flex}h3.svelte-oviq8z{text-wrap:balance;letter-spacing:-1px;margin-bottom:14px;font-size:28px;font-weight:750;line-height:1.13}.summary.svelte-oviq8z{font-size:15px;font-weight:600;line-height:1.65}.detail.svelte-oviq8z{color:var(--muted);margin-top:12px;font-size:14px;line-height:1.8}.tags.svelte-oviq8z{flex-wrap:wrap;gap:7px;margin:24px 0 26px;padding:0;list-style:none;display:flex}.project-tag.svelte-oviq8z{overflow-wrap:anywhere;background:var(--tag-background);max-width:100%;color:var(--tag-ink);font:500 11px/1.5 var(--mono);border-radius:2px;padding:4px 8px}.featured.svelte-oviq8z .project-tag:where(.svelte-oviq8z){color:#dce6f1;background:#293e53}.project-links.svelte-oviq8z{--button-size:12px;--button-padding:11px 14px;border-top:1px solid var(--line);flex-wrap:wrap;gap:13px;margin-top:auto;padding-top:20px;display:flex}.project-links.svelte-oviq8z .button{min-height:45px;box-shadow:none;border-width:1.5px;border-radius:5px;gap:9px;padding:11px 14px;font-size:12px}.project-links.svelte-oviq8z .button:hover{box-shadow:0 3px #182a4130}.project-links.svelte-oviq8z .button:active{box-shadow:none}.featured.svelte-oviq8z{background:var(--feature-panel);color:var(--feature-text);grid-template-columns:.85fr 1.15fr;display:grid}.featured.svelte-oviq8z .visual-wrap:where(.svelte-oviq8z){border-left:1.5px solid var(--ink);grid-area:1/2;display:grid}.featured.svelte-oviq8z .project-copy:where(.svelte-oviq8z){grid-area:1/1;padding:35px}.featured.svelte-oviq8z h3:where(.svelte-oviq8z){letter-spacing:-1.8px;font-size:45px}.featured.svelte-oviq8z .project-category:where(.svelte-oviq8z){color:var(--coral)}.featured.svelte-oviq8z .detail:where(.svelte-oviq8z){color:var(--feature-muted)}.featured.svelte-oviq8z .project-links:where(.svelte-oviq8z){border-top-color:var(--feature-line)}.featured.svelte-oviq8z a:focus-visible{outline-color:var(--coral)}.featured.svelte-oviq8z .featured-dot:where(.svelte-oviq8z){background:var(--coral);width:6px;height:6px}.compact.svelte-oviq8z{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);display:grid}.compact.svelte-oviq8z .visual-wrap:where(.svelte-oviq8z){border-bottom:1px solid #c3ccd2;height:230px;display:grid}.compact.svelte-oviq8z .project-copy:where(.svelte-oviq8z){padding:24px}.compact.svelte-oviq8z h3:where(.svelte-oviq8z){font-size:21px}.compact.svelte-oviq8z .summary:where(.svelte-oviq8z){color:var(--muted);font-size:14px;font-weight:400}.compact.svelte-oviq8z .tags:where(.svelte-oviq8z){margin:18px 0}.compact.svelte-oviq8z .project-category:where(.svelte-oviq8z){font-size:10px}@media (width<=1100px){.featured.svelte-oviq8z .project-copy:where(.svelte-oviq8z){padding:28px}.compact.svelte-oviq8z{grid-template-columns:1fr}.compact.svelte-oviq8z .visual-wrap:where(.svelte-oviq8z){border-bottom:1px solid #c3ccd2;border-right:0;max-height:190px}}@media (width<=800px){.featured.svelte-oviq8z{flex-direction:column;display:flex}.featured.svelte-oviq8z .visual-wrap:where(.svelte-oviq8z){border-left:0;border-bottom:1.5px solid var(--ink)}.project-copy.svelte-oviq8z{padding:23px}.featured.svelte-oviq8z .project-copy:where(.svelte-oviq8z){padding:28px}.featured.svelte-oviq8z h3:where(.svelte-oviq8z){font-size:36px}}@media (width<=600px){.compact.svelte-oviq8z .visual-wrap:where(.svelte-oviq8z){max-height:none}.project-copy.svelte-oviq8z{padding:23px}.project-links.svelte-oviq8z .button{min-height:46px;font-size:12px}}.project-card.svelte-oviq8z{transition:translate .3s,box-shadow .3s,border-color .3s}.visual-wrap.svelte-oviq8z img,.visual-wrap.svelte-oviq8z svg{transition:scale .6s cubic-bezier(.2,.7,.2,1)}@media (hover:hover) and (pointer:fine){.project-card.svelte-oviq8z:hover{border-color:var(--blue);translate:0 -7px;box-shadow:0 14px 26px #182a411c}.project-card.svelte-oviq8z:hover .visual-wrap:where(.svelte-oviq8z) img,.project-card.svelte-oviq8z:hover .visual-wrap:where(.svelte-oviq8z) svg{scale:1.035}}.project-card.svelte-oviq8z:focus-within{border-color:var(--blue);box-shadow:0 8px 20px #182a4120}@media (prefers-reduced-motion:reduce){.project-card.svelte-oviq8z:hover{translate:none}.project-card.svelte-oviq8z:hover .visual-wrap:where(.svelte-oviq8z) img,.project-card.svelte-oviq8z:hover .visual-wrap:where(.svelte-oviq8z) svg{scale:1}}.experience-details.svelte-ghxr3l{border-top:1px solid var(--line);min-width:0;padding-top:26px}h3.svelte-ghxr3l{letter-spacing:-.7px;font-size:clamp(23px,2.3vw,30px);font-weight:700;line-height:1.3}.institution.svelte-ghxr3l{margin-top:10px;font-size:17px;line-height:1.6}.department.svelte-ghxr3l{color:var(--muted);margin-top:2px;font-size:14px;line-height:1.6}.course-block.svelte-ghxr3l{border-top:1px solid var(--line);max-width:760px;margin-top:28px;padding-top:24px}h4.svelte-ghxr3l{letter-spacing:1px;text-transform:uppercase;margin:0 0 14px;font-size:12px;font-weight:650}h5.svelte-ghxr3l{letter-spacing:-.3px;margin:0;font-size:19px;line-height:1.4}.course-block.svelte-ghxr3l>p:where(.svelte-ghxr3l):last-child{color:var(--muted);margin-top:14px;font-size:16px;line-height:1.8}.responsibilities.svelte-ghxr3l{gap:9px;max-width:760px;margin:24px 0 0;padding:0;list-style:none;display:grid}.responsibilities.svelte-ghxr3l li:where(.svelte-ghxr3l){padding-left:22px;font-size:15px;line-height:1.65;position:relative}.responsibilities.svelte-ghxr3l li:where(.svelte-ghxr3l):before{content:"•";color:var(--blue);font-size:20px;line-height:1.1;position:absolute;left:3px}.tags.svelte-ghxr3l{flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:0;list-style:none;display:flex}.tags.svelte-ghxr3l li:where(.svelte-ghxr3l){background:var(--chip-neutral);max-width:100%;color:var(--muted);border:0;border-radius:3px;padding:9px 13px;font-size:13px;line-height:1.5}@media (width<=600px){.experience-details.svelte-ghxr3l{padding-top:22px}.institution.svelte-ghxr3l{font-size:16px}.course-block.svelte-ghxr3l>p:where(.svelte-ghxr3l):last-child,.responsibilities.svelte-ghxr3l li:where(.svelte-ghxr3l){font-size:15px}}.footer-band.svelte-jz8lnl{background:var(--surface-muted);border-top:1px solid var(--line);margin-top:44px}footer.svelte-jz8lnl{padding-top:15px;scroll-margin-top:15px}.contact-section.svelte-jz8lnl{background:var(--contact-background);color:var(--ink);border:1.5px solid var(--ink);border-radius:12px;padding:36px 44px}.contact-section.svelte-jz8lnl a:where(.svelte-jz8lnl):focus-visible{outline-color:var(--blue)}.contact-main.svelte-jz8lnl{grid-template-columns:1fr 1fr;align-items:end;gap:35px;padding:26px 0 37px;display:grid}h2.svelte-jz8lnl{letter-spacing:-3px;font-size:clamp(40px,5.2vw,66px);font-weight:650;line-height:1.04}h2.svelte-jz8lnl span:where(.svelte-jz8lnl){color:var(--blue)}.contact-copy.svelte-jz8lnl p:where(.svelte-jz8lnl){color:var(--contact-muted);font-size:15px;line-height:1.8}.email-address.svelte-jz8lnl{border-bottom:1px solid #a88f7e;align-items:center;gap:25px;margin-top:20px;padding-bottom:7px;font-size:16px;text-decoration:none;display:inline-flex}.email-address.svelte-jz8lnl:hover{color:var(--blue)}.contact-bottom.svelte-jz8lnl{border-top:1px solid #bca18f;justify-content:space-between;align-items:center;gap:20px;padding-top:27px;display:flex}.contact-links.svelte-jz8lnl{--button-shadow:0 3px 0 #182a41;flex-wrap:wrap;gap:15px;display:flex}.contact-links.svelte-jz8lnl .button{border-color:#0d1827;gap:12px;box-shadow:0 4px #0d1827}@media (width<=850px){.contact-section.svelte-jz8lnl{padding:30px}.contact-main.svelte-jz8lnl{grid-template-columns:1fr;gap:25px}.contact-bottom.svelte-jz8lnl{flex-direction:column;align-items:flex-start;gap:24px}}@media (width<=600px){.contact-section.svelte-jz8lnl{padding:25px 21px}h2.svelte-jz8lnl{letter-spacing:-2px;font-size:clamp(34px,11vw,47px)}.contact-copy.svelte-jz8lnl p:where(.svelte-jz8lnl){font-size:13px}.email-address.svelte-jz8lnl{gap:10px;font-size:13px}.contact-links.svelte-jz8lnl{gap:13px;width:100%}.contact-links.svelte-jz8lnl .button{flex:140px;gap:10px;padding-inline:13px;font-size:12px}}.footer-signature.svelte-jz8lnl{justify-content:space-between;align-items:center;gap:32px;padding-block:25px;display:flex}.footer-identity.svelte-jz8lnl{color:var(--ink);align-items:center;gap:13px;text-decoration:none;display:inline-flex}.footer-mark.svelte-jz8lnl{border:1.5px solid var(--ink);background:var(--brand-background);width:40px;height:40px;color:var(--on-bright);box-shadow:2px 2px 0 var(--ink);letter-spacing:-1.5px;border-radius:11px 4px;place-items:center;padding-bottom:3px;font-size:21px;font-weight:850;display:grid}.identity-copy.svelte-jz8lnl{gap:3px;display:grid}.identity-copy.svelte-jz8lnl strong:where(.svelte-jz8lnl){letter-spacing:-.2px;font-size:15px}.identity-copy.svelte-jz8lnl small:where(.svelte-jz8lnl){color:var(--muted);font-size:11px}.footer-meta.svelte-jz8lnl{align-items:center;gap:24px;display:flex}.signature-copyright.svelte-jz8lnl{color:var(--muted);white-space:nowrap;font-size:12px}.back-to-top.svelte-jz8lnl{border:1px solid var(--line-strong);background:var(--paper);min-height:40px;box-shadow:2px 2px 0 var(--ink);border-radius:4px;align-items:center;gap:8px;padding:9px 12px;font-size:12px;font-weight:650;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.back-to-top.svelte-jz8lnl:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(1px,1px)}.back-to-top.svelte-jz8lnl span:where(.svelte-jz8lnl){color:var(--blue);font-size:16px}@media (width<=520px){.footer-signature.svelte-jz8lnl{flex-direction:column;align-items:flex-start;gap:20px}.footer-meta.svelte-jz8lnl{justify-content:space-between;width:100%}.signature-copyright.svelte-jz8lnl{font-size:11px}}@media (prefers-reduced-motion:reduce){.back-to-top.svelte-jz8lnl:hover{transform:none}}.education-section.svelte-1uha8ag,.experience-section.svelte-1uha8ag,#about.svelte-1uha8ag{padding-top:0}.work-layout.svelte-1uha8ag{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:40px;display:grid}.work-content.svelte-1uha8ag,.additional-grid.svelte-1uha8ag{min-width:0}.section-rail.svelte-1uha8ag{align-self:start;position:sticky;top:120px}.section-rail.svelte-1uha8ag .section-heading{margin:0}.section-rail.svelte-1uha8ag h2{letter-spacing:-1.3px;max-width:180px;font-size:34px;line-height:1.12}@media (width<=1100px){.work-layout.svelte-1uha8ag{grid-template-columns:1fr;gap:30px}.section-rail.svelte-1uha8ag{position:static}.section-rail.svelte-1uha8ag h2{max-width:none;font-size:36px}}@media (width<=600px){.section-rail.svelte-1uha8ag h2{font-size:32px}}.work-section.svelte-1uha8ag{background:var(--work-background);border-block:1px solid var(--line)}.project-grid.svelte-1uha8ag{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin-top:25px;display:grid}.additional-grid.svelte-1uha8ag{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;display:grid}@media (width<=740px){.project-grid.svelte-1uha8ag,.additional-grid.svelte-1uha8ag{grid-template-columns:1fr;gap:22px}}
