.Figure-module__gYF0UW__figure{margin:0 0 var(--space-5);gap:var(--space-2);flex-direction:column;display:flex}.Figure-module__gYF0UW__media{border-radius:var(--radius-card);background:var(--accent);width:100%;position:relative;overflow:hidden}.Figure-module__gYF0UW__image{object-fit:cover;width:100%;height:100%;display:block}.Figure-module__gYF0UW__caption{color:var(--muted);font-size:var(--font-size-small);line-height:var(--line-height-default)}
.Button-module__iYV4-q__button{min-height:var(--space-7);padding:0 var(--space-3);font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);line-height:var(--line-height-button);border-radius:var(--radius-button);cursor:pointer;touch-action:manipulation;color:var(--fg);background:0 0;border:none;justify-content:center;align-items:center;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,transform .15s;display:inline-flex}.Button-module__iYV4-q__primary{color:var(--fg-button-primary);background:var(--button-primary);text-shadow:0 1px #0000001a}.Button-module__iYV4-q__primary:active{transform:scale(.97)}.Button-module__iYV4-q__secondary{color:var(--fg-button-secondary);background:var(--button-secondary)}.Button-module__iYV4-q__secondary:active{transform:scale(.97)}.Button-module__iYV4-q__ghost{color:var(--fg-accent);border:var(--border-width)solid var(--border);background:0 0}@media (hover:hover) and (pointer:fine){.Button-module__iYV4-q__primary:hover{background:var(--button-primary-hover)}.Button-module__iYV4-q__secondary:hover{background:var(--button-secondary-hover)}.Button-module__iYV4-q__ghost:hover{background:var(--button-secondary);border-color:var(--button-secondary-hover)}}@media (max-width:640px){.Button-module__iYV4-q__fullWidthOnMobile{box-sizing:border-box;width:100%;display:flex}}@media (prefers-reduced-motion:reduce){.Button-module__iYV4-q__button{transition:none}}
.StaggerText-module__S1dIUW__word{white-space:nowrap;display:inline-block}
.ThemeTransitionOverlay-module__9p62GW__overlay{z-index:var(--z-theme-overlay);background:var(--overlay-bg,var(--bg));opacity:1;pointer-events:none;will-change:opacity;transition:opacity .35s;position:fixed;inset:0}.ThemeTransitionOverlay-module__9p62GW__overlay[data-visible=false]{opacity:0}@media (prefers-reduced-motion:reduce){.ThemeTransitionOverlay-module__9p62GW__overlay{transition:none}}
.ThemeToggle-module__sGqMhG__track{background:var(--switch-bg);outline-offset:-.5px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;border-radius:899px;outline:.5px solid #1111111a;align-items:flex-start;gap:2px;padding:2px;font-family:inherit;display:inline-flex;position:relative}[data-theme=dark] .ThemeToggle-module__sGqMhG__track{outline-color:#f2f2f21a}.ThemeToggle-module__sGqMhG__track:after{content:"";position:absolute;inset:-8px}.ThemeToggle-module__sGqMhG__indicator{background:var(--switch-toggle);pointer-events:none;border-radius:99px;width:24px;height:24px;position:absolute;top:2px;left:2px;box-shadow:0 .5px #11111114,0 0 0 .5px #11111114}[data-theme=dark] .ThemeToggle-module__sGqMhG__indicator{box-shadow:inset 0 .5px #f2f2f214,inset 0 0 0 .5px #f2f2f214}.ThemeToggle-module__sGqMhG__slot{z-index:1;width:24px;height:24px;color:var(--muted);pointer-events:none;border-radius:99px;justify-content:center;align-items:center;display:flex;position:relative}.ThemeToggle-module__sGqMhG__slotActive{color:var(--fg)}[data-theme-transitioning] .ThemeToggle-module__sGqMhG__track,[data-theme-transitioning] .ThemeToggle-module__sGqMhG__indicator,[data-theme-transitioning] .ThemeToggle-module__sGqMhG__slot{transition:none!important}.ThemeToggle-module__sGqMhG__placeholder{width:54px;height:28px;display:inline-flex}
:root{--fg:#111;--fg-prose:#111111b3;--muted:#1116;--link-muted:#575757;--fg-accent:#111;--border:#11111114;--accent:#1111110d;--bg:#fafafa;--card:#fff;--color-success:#14a448;--fg-button-primary:#fff;--button-primary:#2563eb;--button-primary-hover:#1d4ed8;--fg-button-secondary:#111;--button-secondary:#1111110d;--button-secondary-hover:#11111118;--font-family:"Inter var","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-size-display:.875rem;--font-size-heading:.875rem;--font-size-body:.875rem;--font-size-caption:.875rem;--font-size-small:.875rem;--font-size-tiny:.875rem;--font-size-h6:.934rem;--font-size-h5:.996rem;--font-size-h4:1.063rem;--font-size-h3:1.134rem;--font-size-h2:1.21rem;--font-size-h1:1.291rem;--font-weight-regular:450;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-default:1.42857;--line-height-button:1.71429;--line-height-tight:1.25;--line-height-body:1.42857;--line-height-relaxed:1.65;--letter-spacing-tight:-.011em;--letter-spacing-normal:0;--letter-spacing-wide:.01em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-20:5rem;--content-width:37.5rem;--grid-col-year:4.5rem;--grid-col-type:8rem;--grid-col-year-sm:3.5rem;--grid-col-type-sm:6rem;--space-7:1.75rem;--project-header-gap:var(--space-8);--project-header-gap-mobile:var(--space-10);--project-header-bottom:var(--space-3);--project-content-top:var(--space-8);--size-touch:2.5rem;--radius-card:.5rem;--radius-card-leading:6.1875rem;--radius-button:.4375rem;--border-width:.0625rem;--duration-snappy:.22s;--ease-snappy:cubic-bezier(.175,.885,.32,1.1);--duration-swift:.8s;--ease-swift:cubic-bezier(.175,.885,.32,1.275);--duration-smooth:.3s;--ease-smooth:cubic-bezier(.19,1,.22,1);--opacity-muted:.7;--opacity-version:.5;--opacity-hover:.92;--z-drawer:50;--z-drawer-handle:60;--z-transition:70;--z-theme-overlay:90;--z-tooltip:100;--z-popover:200;--z-inline-tooltip:300;--z-page-fade:10;--tooltip-bg:#111;--tooltip-fg:#fff;--tooltip-border:#ffffff26;--switch-toggle:#fff;--switch-bg:#1111110d;--terminal-bg:#222;--terminal-bright:#e8e8e8;--terminal-fg:#a0a0a0;--terminal-dim:#727272;--terminal-react:#7ca8b4;--terminal-vue:#7ca896;--terminal-svelte:#b48a76}[data-theme=dark]{--accent:#dedede12;--bg:#1a1a1a;--card:#282828;--border:#f2f2f214;--color-success:#4ade80;--button-primary:#3b82f6;--button-primary-hover:#60a5fa;--button-secondary:#f2f2f21a;--button-secondary-hover:#f2f2f229;--fg:#f2f2f2;--fg-prose:#f2f2f2b3;--fg-accent:#f2f2f2e6;--fg-button-primary:#fff;--fg-button-secondary:#f2f2f2;--muted:#dedede66;--link-muted:#b1b1b1;--tooltip-bg:#f2f2f2;--tooltip-fg:#1a1a1a;--tooltip-border:#00000026;--font-weight-regular:400;--switch-toggle:#464646;--switch-bg:#fafafa0d;--terminal-bg:#0e0e0e;--terminal-bright:#d4d4d4;--terminal-fg:#888;--terminal-dim:#484848;--terminal-react:#5e8892;--terminal-vue:#5e887a;--terminal-svelte:#946e5c}:focus-visible{outline:2px solid var(--muted);outline-offset:2px;border-radius:2px}body{background:#000;margin:0}[data-vaul-drawer-wrapper][style*=scale]{border-radius:10px!important}
.shadows-module__dN8_FG__surfaceShadow{box-shadow:0 0 0 1px var(--border),0 1px 0 0 var(--border),0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}[data-theme=dark] .shadows-module__dN8_FG__surfaceShadow{box-shadow:0 0 0 1px var(--border),0 -1px 0 0 var(--border)}
.InlineTooltip-module___v-wPW__tooltipWrapper{z-index:var(--z-inline-tooltip);justify-content:center;align-items:center;display:inline-flex;position:relative}.InlineTooltip-module___v-wPW__tooltip{margin-bottom:var(--space-2);z-index:var(--z-inline-tooltip);background:var(--card);color:var(--fg-accent);border:.5px solid var(--border);white-space:nowrap;pointer-events:none;will-change:transform,opacity;backface-visibility:hidden;border-radius:6px;justify-content:center;align-items:center;padding:.0625rem .375rem;font-size:.75rem;font-weight:500;line-height:1.25rem;display:flex;position:absolute;bottom:100%;overflow:hidden;}
.TwitterHoverCard-module__yn-qyq__trigger{display:inline}.TwitterHoverCard-module__yn-qyq__card{width:16rem;padding:var(--space-3);border-radius:var(--radius-card);background:var(--card);color:var(--fg);z-index:var(--z-popover);font-family:var(--font-family);font-size:var(--font-size-body);line-height:var(--line-height-body);-webkit-font-smoothing:antialiased;opacity:0;visibility:hidden;pointer-events:none;filter:blur(4px);transform-origin:bottom;will-change:transform,opacity,filter;backface-visibility:hidden;transition:opacity .15s ease-in,transform .15s ease-in,filter .15s ease-in,visibility 0s linear .15s;position:fixed;transform:translate(-50%)translateY(-100%)scale(.95);}.TwitterHoverCard-module__yn-qyq__cardOpen{opacity:1;visibility:visible;pointer-events:auto;filter:blur();transition:opacity .4s var(--ease-smooth),transform .4s var(--ease-smooth),filter .4s var(--ease-smooth),visibility 0s linear 0s;transform:translate(-50%)translateY(-100%)scale(1)}.TwitterHoverCard-module__yn-qyq__avatar{object-fit:cover;width:2.5rem;height:2.5rem;margin-bottom:var(--space-2);border-radius:50%}.TwitterHoverCard-module__yn-qyq__nameRow{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.TwitterHoverCard-module__yn-qyq__nameLink{color:var(--fg);font-size:var(--font-size-body);line-height:var(--line-height-tight);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-tight);text-decoration:none}.TwitterHoverCard-module__yn-qyq__verified{flex-shrink:0;line-height:0;display:inline-flex}.TwitterHoverCard-module__yn-qyq__handle{color:var(--muted);font-size:var(--font-size-small);line-height:var(--line-height-tight);font-weight:var(--font-weight-regular)}.TwitterHoverCard-module__yn-qyq__bio{margin:var(--space-2)0 0;color:var(--fg-accent);font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:var(--font-weight-regular)}.TwitterHoverCard-module__yn-qyq__featuredHandle{color:var(--button-primary);text-decoration:none}.TwitterHoverCard-module__yn-qyq__stats{gap:var(--space-3);font-variant-numeric:tabular-nums;margin-top:1rem;display:flex}.TwitterHoverCard-module__yn-qyq__stat{color:var(--muted);font-size:var(--font-size-small);line-height:var(--line-height-tight)}.TwitterHoverCard-module__yn-qyq__statValue{color:var(--fg);font-weight:var(--font-weight-medium)}@media (hover:hover) and (pointer:fine){.TwitterHoverCard-module__yn-qyq__nameLink:hover{color:var(--button-primary)}.TwitterHoverCard-module__yn-qyq__featuredHandle:hover{text-decoration:underline;-webkit-text-decoration-color:var(--button-primary);text-decoration-color:var(--button-primary);text-underline-offset:2px}}@media (hover:none) and (pointer:coarse){.TwitterHoverCard-module__yn-qyq__card{display:none}}@media (prefers-reduced-motion:reduce){.TwitterHoverCard-module__yn-qyq__card{filter:none;transition:opacity 80ms linear,visibility 0s linear 80ms;transform:translate(-50%)translateY(-100%)}.TwitterHoverCard-module__yn-qyq__cardOpen{filter:none;transition:opacity 80ms linear,visibility linear;transform:translate(-50%)translateY(-100%)}}
.LetterboxdCard-module__iohdfa__container{z-index:var(--z-popover);padding-bottom:var(--space-2);opacity:0;visibility:hidden;pointer-events:none;filter:blur(4px);transform-origin:bottom;will-change:transform,opacity,filter;backface-visibility:hidden;transition:opacity .18s cubic-bezier(.25,.46,.45,.94),transform .18s cubic-bezier(.25,.46,.45,.94),filter .18s cubic-bezier(.25,.46,.45,.94),visibility 0s linear .18s;position:fixed;transform:translate(-50%)translateY(-100%)scale(.95)}.LetterboxdCard-module__iohdfa__containerOpen{opacity:1;visibility:visible;pointer-events:auto;filter:blur();transition:opacity .5s var(--ease-smooth),transform .5s var(--ease-smooth),filter .5s var(--ease-smooth),visibility 0s linear 0s;transform:translate(-50%)translateY(-100%)scale(1)}.LetterboxdCard-module__iohdfa__stack{cursor:pointer;align-items:center;text-decoration:none;display:inline-flex}.LetterboxdCard-module__iohdfa__card{background:var(--bg);opacity:0;filter:blur(4px);border-radius:6px;flex-shrink:0;width:4rem;height:6rem;margin-left:-8px;transition:opacity .18s cubic-bezier(.25,.46,.45,.94),filter .18s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden;}.LetterboxdCard-module__iohdfa__cardFirst{margin-left:0}.LetterboxdCard-module__iohdfa__containerOpen .LetterboxdCard-module__iohdfa__card{opacity:1;filter:blur();transition:opacity .4s var(--ease-smooth),filter .4s var(--ease-smooth)}.LetterboxdCard-module__iohdfa__containerOpen .LetterboxdCard-module__iohdfa__card:first-child{transition-delay:0s}.LetterboxdCard-module__iohdfa__containerOpen .LetterboxdCard-module__iohdfa__card:nth-child(2){transition-delay:40ms}.LetterboxdCard-module__iohdfa__containerOpen .LetterboxdCard-module__iohdfa__card:nth-child(3){transition-delay:80ms}.LetterboxdCard-module__iohdfa__containerOpen .LetterboxdCard-module__iohdfa__card:nth-child(4){transition-delay:.12s}.LetterboxdCard-module__iohdfa__poster{object-fit:cover;width:4rem;height:6rem;position:absolute;top:0;left:0}.LetterboxdCard-module__iohdfa__cardFirst .LetterboxdCard-module__iohdfa__poster{box-shadow:none}@media (hover:none) and (pointer:coarse){.LetterboxdCard-module__iohdfa__container{display:none}}@media (prefers-reduced-motion:reduce){.LetterboxdCard-module__iohdfa__container{filter:none;transition:opacity .18s linear,visibility 0s linear .18s;transform:translate(-50%)translateY(-100%)}.LetterboxdCard-module__iohdfa__containerOpen{filter:none;transition:opacity .18s linear,visibility linear;transform:translate(-50%)translateY(-100%)}.LetterboxdCard-module__iohdfa__card{opacity:1;filter:none;transition:none}.LetterboxdCard-module__iohdfa__containerOpen .LetterboxdCard-module__iohdfa__card{transition:none}}
.ProjectContent-module__3POJXG__body{gap:var(--space-5);flex-direction:column;display:flex}.ProjectContent-module__3POJXG__title{font-weight:var(--font-weight-medium);color:var(--fg);font-size:var(--font-size-body);text-wrap:balance;margin:0}.ProjectContent-module__3POJXG__meta{color:var(--muted);font-size:var(--font-size-body)}.ProjectContent-module__3POJXG__description{color:var(--fg-accent);font-size:var(--font-size-body);line-height:var(--line-height-body);margin:0}.ProjectContent-module__3POJXG__prose{color:var(--fg-accent);font-size:var(--font-size-body);line-height:var(--line-height-body)}.ProjectContent-module__3POJXG__prose p{margin:0 0 var(--space-3);color:var(--fg-accent);font-size:var(--font-size-body);line-height:var(--line-height-body)}.ProjectContent-module__3POJXG__prose p:last-child{margin-bottom:0}.ProjectContent-module__3POJXG__prose h1,.ProjectContent-module__3POJXG__prose h2,.ProjectContent-module__3POJXG__prose h3,.ProjectContent-module__3POJXG__prose h4,.ProjectContent-module__3POJXG__prose h5,.ProjectContent-module__3POJXG__prose h6{font-weight:var(--font-weight-medium);color:var(--fg-accent);font-size:var(--font-size-h2);line-height:var(--line-height-tight);margin:var(--space-14)0 var(--space-3);scroll-margin-top:7rem}.ProjectContent-module__3POJXG__prose :is(h1,h2,h3,h4,h5,h6):first-child{margin-top:0}.ProjectContent-module__3POJXG__prose ul,.ProjectContent-module__3POJXG__prose ol{margin:0 0 var(--space-3);padding-left:1.25em}.ProjectContent-module__3POJXG__prose li{margin-bottom:var(--space-1)}.ProjectContent-module__3POJXG__prose li::marker{color:var(--muted)}.ProjectContent-module__3POJXG__prose a:not([data-button]){color:var(--link-muted);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s;position:relative}.ProjectContent-module__3POJXG__prose a:not([data-button]):before{content:"";position:absolute;inset:-8px -4px}@media (hover:hover) and (pointer:fine){.ProjectContent-module__3POJXG__prose a:not([data-button]):hover{color:var(--button-primary);-webkit-text-decoration-color:var(--button-primary);text-decoration-color:var(--button-primary)}}.ProjectContent-module__3POJXG__prose img{border-radius:var(--radius-card);max-width:100%;height:auto;box-shadow:0 0 0 1px var(--border),0 1px 1px var(--border),0 3px 3px var(--border)}.ProjectContent-module__3POJXG__prose hr{border:none;border-top:1px solid var(--border);margin:var(--space-14)0 var(--space-7)}.ProjectContent-module__3POJXG__prose code{font-family:var(--font-mono),monospace;font-size:.8125rem;line-height:inherit;letter-spacing:var(--letter-spacing-normal);background:var(--accent);border-radius:4px;padding:.125em .3em}.ProjectContent-module__3POJXG__prose blockquote{margin:0 0 var(--space-3);padding:var(--space-2)var(--space-3);color:#cca114;background:#e2b41e14;border-left:1px solid #cca114}.ProjectContent-module__3POJXG__prose blockquote p{color:inherit;margin:0}.ProjectContent-module__3POJXG__prose blockquote p+p{margin-top:var(--space-2)}[data-theme=dark] .ProjectContent-module__3POJXG__prose blockquote{color:#f1cc58;background:#e2b41e24;border-left-color:#e2b41e}.ProjectContent-module__3POJXG__prose strong{color:var(--fg);font-weight:var(--font-weight-medium)}.ProjectContent-module__3POJXG__projectLink{align-self:flex-start}
.SpotifyHoverCard-module__OGMvUa__trigger{display:inline}.SpotifyHoverCard-module__OGMvUa__triggerControl{color:var(--link-muted);font:inherit;line-height:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin:0;padding:0;transition:color .15s,text-decoration-color .15s}.SpotifyHoverCard-module__OGMvUa__triggerLink,.SpotifyHoverCard-module__OGMvUa__triggerButton{display:inline}.SpotifyHoverCard-module__OGMvUa__triggerControl:focus-visible{outline:2px solid var(--muted);outline-offset:2px}.SpotifyHoverCard-module__OGMvUa__card{z-index:var(--z-popover);padding-bottom:var(--space-2);opacity:0;visibility:hidden;pointer-events:none;filter:blur(4px);transform-origin:bottom;will-change:transform,opacity,filter;backface-visibility:hidden;transition:opacity .18s cubic-bezier(.25,.46,.45,.94),transform .18s cubic-bezier(.25,.46,.45,.94),filter .18s cubic-bezier(.25,.46,.45,.94),visibility 0s linear .18s;position:fixed;transform:translate(-50%)translateY(-100%)scale(.95)}.SpotifyHoverCard-module__OGMvUa__cardOpen{opacity:1;visibility:visible;pointer-events:auto;filter:blur();transition:opacity .5s var(--ease-smooth),transform .5s var(--ease-smooth),filter .5s var(--ease-smooth),visibility 0s linear 0s;transform:translate(-50%)translateY(-100%)scale(1)}@media (hover:hover) and (pointer:fine){.SpotifyHoverCard-module__OGMvUa__triggerControl:hover{color:var(--button-primary);-webkit-text-decoration-color:var(--button-primary);text-decoration-color:var(--button-primary)}}@media (hover:none) and (pointer:coarse){.SpotifyHoverCard-module__OGMvUa__triggerButton{pointer-events:none;cursor:text}.SpotifyHoverCard-module__OGMvUa__card{display:none}}@media (prefers-reduced-motion:reduce){.SpotifyHoverCard-module__OGMvUa__card{filter:none;transition:opacity .18s linear,visibility 0s linear .18s;transform:translate(-50%)translateY(-100%)}.SpotifyHoverCard-module__OGMvUa__cardOpen{filter:none;transition:opacity .18s linear,visibility linear;transform:translate(-50%)translateY(-100%)}}
.SpotifyWidget-module__rmpBXa__widget{min-width:240px;max-width:min(320px,100vw - 2rem);font-family:var(--font-family);font-size:var(--font-size-body);line-height:var(--line-height-body);padding:var(--space-2);border-radius:var(--radius-card);border-top-left-radius:var(--radius-card-leading);border-bottom-left-radius:var(--radius-card-leading);background:var(--card);color:inherit;-webkit-font-smoothing:antialiased;box-shadow:0 0 0 .5px var(--border,#11111114),0 12px 12px -6px var(--border,#11111114),0 6px 6px -3px var(--border,#11111114),0 3px 3px -1.5px var(--border,#11111114),0 1px 1px -.5px var(--border,#11111114);align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:clip}[data-theme=dark] .SpotifyWidget-module__rmpBXa__widget{box-shadow:0 .5px 0 0 var(--border,#f2f2f214)inset,0 0 0 .5px var(--border,#f2f2f214)inset,0 12px 12px -6px #00000026,0 6px 6px -3px #00000026,0 3px 3px -1.5px #00000026,0 1px 1px -.5px #00000026}.SpotifyWidget-module__rmpBXa__widget:focus-visible{outline:2px solid var(--muted);outline-offset:2px}.SpotifyWidget-module__rmpBXa__albumArtWrapper{flex-shrink:0;align-items:center;display:flex}.SpotifyWidget-module__rmpBXa__albumArtShell{border-radius:999px;flex-shrink:0;width:4.5rem;height:4.5rem;box-shadow:0 12px 12px -6px #00000014,0 6px 6px -3px #00000014,0 3px 3px -1.5px #00000014,0 1px 1px -.5px #00000014}.SpotifyWidget-module__rmpBXa__albumArt{border-radius:inherit;transform-origin:50%;will-change:transform;width:100%;height:100%;animation:2.8s linear infinite SpotifyWidget-module__rmpBXa__albumSpin;position:relative;overflow:clip}.SpotifyWidget-module__rmpBXa__widgetPaused .SpotifyWidget-module__rmpBXa__albumArt{animation-play-state:paused}.SpotifyWidget-module__rmpBXa__albumArtImage{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.SpotifyWidget-module__rmpBXa__albumArtFallback{border-radius:inherit;background:radial-gradient(circle at 30% 30%,#ffffff47,#0000 42%),linear-gradient(140deg,#1db954 0%,#129240 52%,#0d6a2f 100%);position:absolute;inset:0}[data-theme=dark] .SpotifyWidget-module__rmpBXa__albumArtFallback{background:radial-gradient(circle at 30% 30%,#fff3,#0000 42%),linear-gradient(140deg,#178e42 0%,#116631 55%,#0b4a24 100%)}.SpotifyWidget-module__rmpBXa__recordCenter{background:var(--bg);border-radius:999px;width:1rem;height:1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #000,inset 0 0 0 4px #bbb}.SpotifyWidget-module__rmpBXa__albumRim{pointer-events:none;border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 0 0 .5px #00000080,inset 0 0 0 1px #adadad}.SpotifyWidget-module__rmpBXa__musicInfo{--chevron-size:1rem;width:100%;min-width:0;padding:0 0 0 var(--space-3);flex-direction:column;flex:auto;align-self:stretch;align-items:flex-start;display:flex}.SpotifyWidget-module__rmpBXa__topRow{justify-content:space-between;align-items:flex-start;width:100%;min-width:0;display:flex}.SpotifyWidget-module__rmpBXa__songArtistWrapper{width:100%;min-width:0;line-height:var(--line-height-body);letter-spacing:-.0064em;flex-direction:column;flex:auto;align-items:flex-start;gap:.125rem;display:flex}.SpotifyWidget-module__rmpBXa__trackName{width:100%;color:var(--fg-accent);font-size:var(--font-size-body);line-height:1.22;font-weight:var(--font-weight-semibold);white-space:nowrap;text-overflow:clip;margin:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 0% 78%,#0000 100%);mask-image:linear-gradient(90deg,#000 0% 78%,#0000 100%)}.SpotifyWidget-module__rmpBXa__artistName{text-overflow:ellipsis;max-width:100%;color:var(--fg-accent);font-size:.75rem;line-height:var(--line-height-body);white-space:nowrap;margin:0;overflow:hidden}.SpotifyWidget-module__rmpBXa__divider{border-top:var(--border-width)solid var(--border);width:100%;height:1px;margin-top:auto}.SpotifyWidget-module__rmpBXa__lastPlayed{margin:0;margin-top:var(--space-2);text-overflow:ellipsis;max-width:100%;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem;line-height:var(--line-height-body);white-space:nowrap;overflow:hidden}.SpotifyWidget-module__rmpBXa__arrowIcon{flex:0 0 var(--chevron-size);width:var(--chevron-size);height:var(--chevron-size);pointer-events:none;color:var(--fg);margin-top:1px;display:inline-flex}@keyframes SpotifyWidget-module__rmpBXa__albumSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.SpotifyWidget-module__rmpBXa__arrowSvg{width:100%;height:100%;display:block}.SpotifyWidget-module__rmpBXa__arrowSvg path{stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.SpotifyWidget-module__rmpBXa__arrowIconChevron{transform-origin:50%;transition:transform .2s ease-out;transform:translate(0)}.SpotifyWidget-module__rmpBXa__arrowIconTail{transform-box:fill-box;transform-origin:100% 0;transition:transform .2s ease-out;transform:translate(-1.75px,1.75px)scale(.066)}@media (hover:hover) and (pointer:fine){.SpotifyWidget-module__rmpBXa__widget:hover .SpotifyWidget-module__rmpBXa__arrowIconChevron{transform:translate(2px,-2px)}.SpotifyWidget-module__rmpBXa__widget:hover .SpotifyWidget-module__rmpBXa__arrowIconTail{transform:translate(0)scale(1)}}.SpotifyWidget-module__rmpBXa__widget:focus-visible .SpotifyWidget-module__rmpBXa__arrowIconChevron{transform:translate(2px,-2px)}.SpotifyWidget-module__rmpBXa__widget:focus-visible .SpotifyWidget-module__rmpBXa__arrowIconTail{transform:translate(0)scale(1)}@media (prefers-reduced-motion:reduce){.SpotifyWidget-module__rmpBXa__albumArt{animation:none}.SpotifyWidget-module__rmpBXa__arrowIconChevron,.SpotifyWidget-module__rmpBXa__arrowIconTail{transition:none}}
.shared-module__q8HX2G__baseTypography{font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-normal);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"ss01" 1,"zero" 1,"ss08" 1,"cv12" 1,"cv13" 1,"cv10" 1,"cv06" 1,"cv11" 1,"calt" 1,"liga" 1;font-variant-ligatures:common-ligatures contextual}.shared-module__q8HX2G__verticalFade{pointer-events:none;height:32px;position:fixed;left:0;right:0}.shared-module__q8HX2G__verticalFade[data-side=top]{background:linear-gradient(to top,transparent,var(--bg));-webkit-mask-image:linear-gradient(to bottom,var(--bg)25%,transparent);-webkit-mask-image:linear-gradient(to bottom,var(--bg)25%,transparent);mask-image:linear-gradient(to bottom,var(--bg)25%,transparent);top:0}.shared-module__q8HX2G__verticalFade[data-side=bottom]{background:linear-gradient(to bottom,transparent,var(--bg));-webkit-mask-image:linear-gradient(to top,var(--bg)25%,transparent);-webkit-mask-image:linear-gradient(to top,var(--bg)25%,transparent);mask-image:linear-gradient(to top,var(--bg)25%,transparent);bottom:0}
.ProjectTransitionLayer-module__x7-lqG__portal{z-index:var(--z-transition);pointer-events:auto;position:fixed;inset:0}.ProjectTransitionLayer-module__x7-lqG__layer{pointer-events:none;background:var(--bg);border-top:1px solid var(--border);transform-origin:0 0;transform:translate3d(var(--tx),var(--ty),0)scale(var(--sx),var(--sy));transition:transform .52s var(--ease-smooth),border-radius .36s var(--ease-smooth),opacity .2s ease-out;opacity:1;will-change:transform,opacity;contain:layout paint;border-radius:10px;position:absolute;inset:0;overflow:hidden;}.ProjectTransitionLayer-module__x7-lqG__layer[data-expanded=true]{border-top-color:#0000;border-radius:0;transform:translate(0,0)scale(1)}.ProjectTransitionLayer-module__x7-lqG__layer[data-revealing=true]{opacity:0}.ProjectTransitionLayer-module__x7-lqG__inner{padding:4rem var(--space-4)var(--space-6);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right));padding-bottom:max(var(--space-6),env(safe-area-inset-bottom));max-width:var(--content-width);box-sizing:border-box;width:100%;height:100%;margin:0 auto}@media (max-width:640px){.ProjectTransitionLayer-module__x7-lqG__inner{padding:var(--space-5)var(--space-4);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right));padding-bottom:max(var(--space-5),env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.ProjectTransitionLayer-module__x7-lqG__layer{transition:none}}
.PikaiconsIncenseLink-module__H3GJQa__trigger{isolation:isolate;align-items:baseline;display:inline-flex;position:relative}.PikaiconsIncenseLink-module__H3GJQa__link{z-index:2;position:relative}.PikaiconsIncenseLink-module__H3GJQa__wisp{opacity:0;color:var(--fg);transform-origin:50%;will-change:transform,opacity,filter;pointer-events:none;z-index:9999;place-items:center;display:grid}.PikaiconsIncenseLink-module__H3GJQa__wisp svg{display:block;overflow:visible}.PikaiconsIncenseLink-module__H3GJQa__wisp path{fill:currentColor}@media (prefers-reduced-motion:reduce){.PikaiconsIncenseLink-module__H3GJQa__wisp{display:none}}
.SiteFooter-module__wWXZva__footer{padding:var(--space-6)var(--space-4)var(--space-8);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.SiteFooter-module__wWXZva__inner{max-width:var(--content-width);margin:0 auto;}.SiteFooter-module__wWXZva__card{padding-top:var(--space-3);border-top:1px solid var(--border);flex-direction:column;display:flex}.SiteFooter-module__wWXZva__statusLine{color:var(--fg-prose);font-size:var(--font-size-small);line-height:var(--line-height-body);font-weight:var(--font-weight-regular);font-variant-numeric:tabular-nums;text-wrap:pretty;margin:0}
.Terminal-module__ggIYaW__window{background:var(--terminal-bg);border-radius:var(--radius-card);font-family:var(--font-mono),monospace;font-variant-ligatures:none;margin:var(--space-6)0;padding:var(--space-3)var(--space-4);font-size:.8125rem;line-height:1.35;overflow:auto hidden}.Terminal-module__ggIYaW__line{color:var(--terminal-fg);white-space:pre;opacity:0;min-height:1.35em;display:block;transform:translateY(4px)}.Terminal-module__ggIYaW__windowVisible .Terminal-module__ggIYaW__line{animation:Terminal-module__ggIYaW__lineIn var(--duration-smooth)var(--ease-smooth)forwards;animation-delay:calc(var(--line-index)*80ms + .1s)}.Terminal-module__ggIYaW__windowVisible .Terminal-module__ggIYaW__lineSuccess{animation-delay:calc(var(--line-index)*80ms + .22s)}@keyframes Terminal-module__ggIYaW__lineIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.Terminal-module__ggIYaW__lineCommand{color:var(--terminal-bright);font-weight:var(--font-weight-medium)}.Terminal-module__ggIYaW__prompt,.Terminal-module__ggIYaW__dim{color:var(--terminal-dim);-webkit-user-select:none;user-select:none}.Terminal-module__ggIYaW__count{font-variant-numeric:tabular-nums}@media (max-width:640px){.Terminal-module__ggIYaW__window{padding:var(--space-2)var(--space-3);font-size:.6875rem}}@media (prefers-reduced-motion:reduce){.Terminal-module__ggIYaW__line{opacity:1;transform:none;animation:none!important}.Terminal-module__ggIYaW__windowVisible .Terminal-module__ggIYaW__line{animation:none!important}}
.NotFound-module__txpBSG__container{max-width:var(--content-width);padding:var(--space-4);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right));flex-direction:column;min-height:100vh;margin:0 auto;display:flex;}.NotFound-module__txpBSG__container ::selection{background:var(--accent)}.NotFound-module__txpBSG__body{padding:0 var(--space-4);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.NotFound-module__txpBSG__inner{align-items:flex-start;gap:var(--space-6);flex-direction:column;display:flex}.NotFound-module__txpBSG__codeRow{align-items:center;gap:var(--space-2);display:flex}.NotFound-module__txpBSG__divider{background:var(--border);width:1px;height:16px}.NotFound-module__txpBSG__code{font-size:var(--font-size-body);font-weight:var(--font-weight-regular);color:var(--muted);font-variant-numeric:tabular-nums}.NotFound-module__txpBSG__message{color:var(--fg)}.NotFound-module__txpBSG__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}@media (max-width:640px){.NotFound-module__txpBSG__container{padding-top:var(--space-10);padding-bottom:var(--space-8)}.NotFound-module__txpBSG__actions{flex-direction:column}}
.ProjectPage-module__J5b--W__container{min-height:100vh;padding:0 var(--space-4)var(--space-10);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right));}.ProjectPage-module__J5b--W__container ::selection{background:var(--accent)}.ProjectPage-module__J5b--W__pageFrame{grid-template-columns:minmax(14rem,1fr) minmax(0,37.5rem) minmax(14rem,1fr);align-items:start;max-width:75rem;margin:0 auto;display:grid}.ProjectPage-module__J5b--W__leftSideColumn{top:var(--space-20);padding-right:var(--space-3);align-self:start;position:sticky}.ProjectPage-module__J5b--W__leftInner{gap:var(--space-3);min-height:calc(100vh - var(--space-20) - var(--space-10));flex-direction:column;display:flex}.ProjectPage-module__J5b--W__back{color:var(--link-muted);align-items:center;gap:var(--space-1);padding:var(--space-1)var(--space-2);border-radius:var(--radius-card);touch-action:manipulation;text-decoration:none;transition:color .15s;display:inline-flex;position:relative}.ProjectPage-module__J5b--W__backMobile{margin-bottom:var(--space-6);display:none;}.ProjectPage-module__J5b--W__backIcon{flex-shrink:0;display:block}.ProjectPage-module__J5b--W__backIconChevron{transform-origin:50%;transition:transform .2s ease-out;transform:translate(0)}.ProjectPage-module__J5b--W__backIconTail{transform-box:fill-box;transform-origin:0;transition:transform .2s ease-out;transform:scaleX(0)}.ProjectPage-module__J5b--W__toc{gap:var(--space-1);flex-direction:column;margin-top:auto;margin-bottom:auto;display:flex}.ProjectPage-module__J5b--W__tocItem{align-items:center;gap:var(--space-2);padding:var(--space-1)var(--space-2);border-radius:var(--radius-card);color:var(--muted);touch-action:manipulation;transition:color var(--duration-snappy)var(--ease-smooth);text-decoration:none;display:flex;position:relative}.ProjectPage-module__J5b--W__tocItem[data-level="3"]{padding-left:var(--space-3)}.ProjectPage-module__J5b--W__tocItem[data-level="4"],.ProjectPage-module__J5b--W__tocItem[data-level="5"],.ProjectPage-module__J5b--W__tocItem[data-level="6"]{padding-left:var(--space-4)}.ProjectPage-module__J5b--W__tocRule{opacity:.65;transform-origin:0;width:1.5rem;height:1px;transition:transform var(--duration-snappy)var(--ease-smooth),opacity var(--duration-snappy)var(--ease-smooth);background:currentColor;border-radius:9999px;flex-shrink:0;transform:scaleX(.33)}.ProjectPage-module__J5b--W__tocLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ProjectPage-module__J5b--W__tocItemActive{color:var(--fg-accent)}.ProjectPage-module__J5b--W__tocItemActive .ProjectPage-module__J5b--W__tocRule{opacity:1;transform:scaleX(1)}.ProjectPage-module__J5b--W__contentColumn{width:100%;max-width:37.5rem;padding-top:var(--space-20);padding-bottom:var(--space-10);justify-self:center}.ProjectPage-module__J5b--W__contentWrapper{width:100%}.ProjectPage-module__J5b--W__headerSection{align-items:center;gap:var(--project-header-gap);padding-bottom:var(--project-header-bottom);flex-direction:column;display:flex}.ProjectPage-module__J5b--W__headerTitleWrap{align-items:center;gap:var(--space-2);flex-direction:column;width:100%;display:flex}.ProjectPage-module__J5b--W__pageTitle{text-align:center;font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--fg-accent);letter-spacing:var(--letter-spacing-tight);text-wrap:balance;margin:0}.ProjectPage-module__J5b--W__metaRow{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding-bottom:var(--space-2);border-bottom:1px solid var(--border);display:flex}.ProjectPage-module__J5b--W__dateLabel{color:var(--muted);font-variant-numeric:tabular-nums;margin:0}.ProjectPage-module__J5b--W__readTime{align-items:center;gap:var(--space-2);color:var(--muted);font-variant-numeric:tabular-nums;display:inline-flex}.ProjectPage-module__J5b--W__shareButton{appearance:none;justify-content:flex-end;align-items:center;gap:var(--space-2);min-width:4.75rem;color:var(--muted);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0;transition:color .15s;display:inline-flex;position:relative}.ProjectPage-module__J5b--W__shareButtonCopied{color:var(--color-success)}.ProjectPage-module__J5b--W__shareIconWrap{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.ProjectPage-module__J5b--W__metaIcon{flex-shrink:0}.ProjectPage-module__J5b--W__back:before,.ProjectPage-module__J5b--W__tocItem:before,.ProjectPage-module__J5b--W__shareButton:before{content:"";position:absolute;inset:-12px}.ProjectPage-module__J5b--W__contentBody{padding-top:var(--project-content-top)}.ProjectPage-module__J5b--W__verticalFade{z-index:var(--z-page-fade);}.ProjectPage-module__J5b--W__back:focus-visible,.ProjectPage-module__J5b--W__backMobile:focus-visible,.ProjectPage-module__J5b--W__tocItem:focus-visible,.ProjectPage-module__J5b--W__shareButton:focus-visible{outline:2px solid var(--fg-accent);outline-offset:2px}.ProjectPage-module__J5b--W__back:active,.ProjectPage-module__J5b--W__tocItem:active,.ProjectPage-module__J5b--W__shareButton:active{color:var(--fg)}.ProjectPage-module__J5b--W__shareButton.ProjectPage-module__J5b--W__shareButtonCopied:active{color:var(--color-success)}@media (prefers-reduced-motion:reduce){.ProjectPage-module__J5b--W__back,.ProjectPage-module__J5b--W__tocItem,.ProjectPage-module__J5b--W__tocRule,.ProjectPage-module__J5b--W__shareButton,.ProjectPage-module__J5b--W__backIconChevron,.ProjectPage-module__J5b--W__backIconTail{transition:none}}@media (hover:hover) and (pointer:fine){.ProjectPage-module__J5b--W__back:hover,.ProjectPage-module__J5b--W__tocItem:hover,.ProjectPage-module__J5b--W__shareButton:hover{color:var(--fg)}.ProjectPage-module__J5b--W__shareButton.ProjectPage-module__J5b--W__shareButtonCopied:hover{color:var(--color-success)}.ProjectPage-module__J5b--W__back:hover .ProjectPage-module__J5b--W__backIconChevron,.ProjectPage-module__J5b--W__backMobile:hover .ProjectPage-module__J5b--W__backIconChevron{transform:translate(-2.5px)}.ProjectPage-module__J5b--W__back:hover .ProjectPage-module__J5b--W__backIconTail,.ProjectPage-module__J5b--W__backMobile:hover .ProjectPage-module__J5b--W__backIconTail{transform:translate(-1.5px)scaleX(1)}}.ProjectPage-module__J5b--W__back:focus-visible .ProjectPage-module__J5b--W__backIconChevron,.ProjectPage-module__J5b--W__backMobile:focus-visible .ProjectPage-module__J5b--W__backIconChevron{transform:translate(-2.5px)}.ProjectPage-module__J5b--W__back:focus-visible .ProjectPage-module__J5b--W__backIconTail,.ProjectPage-module__J5b--W__backMobile:focus-visible .ProjectPage-module__J5b--W__backIconTail{transform:translate(-1.5px)scaleX(1)}@media (max-width:1200px){.ProjectPage-module__J5b--W__pageFrame{grid-template-columns:minmax(12rem,1fr) minmax(0,37.5rem) minmax(12rem,1fr)}}@media (max-width:1024px){.ProjectPage-module__J5b--W__pageFrame{grid-template-columns:minmax(0,1fr)}.ProjectPage-module__J5b--W__leftSideColumn{display:none}.ProjectPage-module__J5b--W__contentColumn{padding-top:var(--space-10);padding-bottom:var(--space-10);margin:0 auto}.ProjectPage-module__J5b--W__contentBody{padding-top:var(--project-content-top)}.ProjectPage-module__J5b--W__backMobile{display:inline-flex}}@media (max-width:640px){.ProjectPage-module__J5b--W__container{padding-bottom:var(--space-8);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.ProjectPage-module__J5b--W__contentColumn{padding-top:var(--space-8);padding-bottom:var(--space-8)}.ProjectPage-module__J5b--W__headerSection{gap:var(--project-header-gap-mobile)}.ProjectPage-module__J5b--W__pageTitle{font-size:var(--font-size-h2)}.ProjectPage-module__J5b--W__metaRow{row-gap:var(--space-2);flex-wrap:wrap}}
.Site-module__idpr8W__container{max-width:var(--content-width);padding:var(--space-20)var(--space-4)var(--space-10);padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right));min-height:100vh;margin:0 auto;}.Site-module__idpr8W__container ::selection{background:var(--accent)}.Site-module__idpr8W__header{padding:0 var(--space-2);margin-bottom:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.Site-module__idpr8W__name{font-size:var(--font-size-body);line-height:var(--line-height-body);font-weight:var(--font-weight-medium);color:var(--fg);text-wrap:balance;margin:0}.Site-module__idpr8W__tagline{color:var(--muted);font-variant-numeric:oldstyle-nums tabular-nums}.Site-module__idpr8W__bio{padding:var(--space-7)var(--space-2);border-bottom:1px solid var(--border);color:var(--fg-accent)}.Site-module__idpr8W__bio p{margin:0 0 var(--space-5)}.Site-module__idpr8W__bio p:last-child{margin-bottom:0}.Site-module__idpr8W__bioLine{margin:0}.Site-module__idpr8W__bio a{color:var(--link-muted);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s;position:relative}.Site-module__idpr8W__bio a:before{content:"";position:absolute;inset:-8px -4px}@media (hover:hover) and (pointer:fine){.Site-module__idpr8W__bio a:hover{color:var(--button-primary);-webkit-text-decoration-color:var(--button-primary);text-decoration-color:var(--button-primary)}}.Site-module__idpr8W__projects{padding:var(--space-7)0;border-bottom:1px solid var(--border)}.Site-module__idpr8W__projectRows{flex-direction:column;gap:2px;display:flex;position:relative}.Site-module__idpr8W__projectRowHighlight{background:var(--accent);border-radius:var(--radius-card);pointer-events:none;position:absolute;top:0;left:0;right:0}.Site-module__idpr8W__projectRow{z-index:1;padding:.375rem var(--space-2);border-radius:var(--radius-card);cursor:pointer;touch-action:manipulation;color:inherit;align-items:flex-start;text-decoration:none;display:flex;position:relative;overflow:hidden}.Site-module__idpr8W__projectRowHeader{cursor:default}.Site-module__idpr8W__projectRowHeader .Site-module__idpr8W__colName{color:var(--muted)}.Site-module__idpr8W__colYear{width:2.3125rem;color:var(--muted);font-variant-numeric:oldstyle-nums tabular-nums;flex-shrink:0;transition:color .15s ease-out}.Site-module__idpr8W__colSep{width:var(--space-5);color:var(--muted);pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.Site-module__idpr8W__colName{color:var(--fg-accent);flex:1 1 0}.Site-module__idpr8W__colType{color:var(--muted);flex-shrink:0;transition:color .15s ease-out}@media (hover:hover) and (pointer:fine){.Site-module__idpr8W__projectRow:not(.Site-module__idpr8W__projectRowHeader):hover .Site-module__idpr8W__colYear,.Site-module__idpr8W__projectRow:not(.Site-module__idpr8W__projectRowHeader):hover .Site-module__idpr8W__colType{color:var(--fg-accent)}}.Site-module__idpr8W__featured{padding:var(--space-7)0}.Site-module__idpr8W__featuredCard{gap:var(--space-6);padding:var(--space-2);flex-direction:column;display:flex}.Site-module__idpr8W__featuredHeader{align-items:flex-start;display:flex}.Site-module__idpr8W__featuredIconWrap{align-items:center;gap:var(--space-2);padding:var(--space-1)var(--space-3)var(--space-1)0;display:flex}.Site-module__idpr8W__featuredIcon{background:var(--bg);border:.5px solid var(--border);border-radius:var(--radius-card);width:2rem;height:2rem;position:relative;overflow:hidden;box-shadow:0 1px 1px #00000014}.Site-module__idpr8W__featuredIcon img{object-fit:cover;border-radius:var(--radius-card);width:100%;height:100%;position:absolute;inset:0}.Site-module__idpr8W__logoLight{opacity:1}.Site-module__idpr8W__logoDark,[data-theme=dark] .Site-module__idpr8W__logoLight{opacity:0}[data-theme=dark] .Site-module__idpr8W__logoDark{opacity:1}.Site-module__idpr8W__featuredMeta{flex-direction:column;display:flex}.Site-module__idpr8W__featuredTitle{font-weight:var(--font-weight-medium);color:var(--fg);text-wrap:balance}.Site-module__idpr8W__featuredUrl{color:var(--link-muted);cursor:pointer;text-decoration:none;transition:color .15s}@media (hover:hover) and (pointer:fine){.Site-module__idpr8W__featuredUrl:hover{color:var(--button-primary)}}.Site-module__idpr8W__featuredDesc{color:var(--fg-accent);font-variant-numeric:oldstyle-nums tabular-nums}.Site-module__idpr8W__featuredDesc a{color:var(--link-muted);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s;position:relative}.Site-module__idpr8W__featuredDesc a:before{content:"";position:absolute;inset:-8px -4px}@media (hover:hover) and (pointer:fine){.Site-module__idpr8W__featuredDesc a:hover{color:var(--button-primary);-webkit-text-decoration-color:var(--button-primary);text-decoration-color:var(--button-primary)}}.Site-module__idpr8W__featuredList{color:var(--fg-accent);font-variant-numeric:oldstyle-nums tabular-nums;margin:0;padding-left:1.25em;list-style-position:outside}.Site-module__idpr8W__featuredList li::marker{color:var(--muted)}.Site-module__idpr8W__featuredList li{margin-bottom:var(--space-1)}.Site-module__idpr8W__featuredList li:last-child{margin-bottom:0}.Site-module__idpr8W__featuredActions{gap:var(--space-3);flex-wrap:wrap;display:flex}@media (max-width:640px){.Site-module__idpr8W__container{padding-top:var(--space-10);padding-bottom:var(--space-8)}.Site-module__idpr8W__colType{display:none}.Site-module__idpr8W__featuredActions{flex-direction:column}}.Site-module__idpr8W__projectRow:focus-visible{outline-offset:-2px}
