.activity-heatmap_root__Yef9P{--cell:10px;--gap:3px;--pitch:calc(var(--cell) + var(--gap));--label-width:28px;--heat-accent:var(--foreground);--level-0:var(--muted);--level-1:color-mix(in oklab,var(--heat-accent) 22%,var(--card));--level-2:color-mix(in oklab,var(--heat-accent) 42%,var(--card));--level-3:color-mix(in oklab,var(--heat-accent) 65%,var(--card));--level-4:var(--heat-accent);position:relative;min-width:0;color:var(--foreground);font-size:12px;line-height:1.4}.activity-heatmap_header__Rc9P_{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}.activity-heatmap_summary__cDMSv{margin:0;font-size:14px}.activity-heatmap_total___YqiZ{font-weight:500}.activity-heatmap_period__26Yrk{color:var(--muted-foreground)}.activity-heatmap_actions__fZhSV{display:flex;gap:8px}.activity-heatmap_rollingFrame__4pdOT{display:inline-block;vertical-align:bottom}.activity-heatmap_rolling__ZVDTs{display:inline-flex;width:max-content;font-variant-numeric:tabular-nums}.activity-heatmap_place__Jiyzj,.activity-heatmap_rise__HqHNZ{position:relative;display:inline-block;vertical-align:bottom}.activity-heatmap_placeChar__NYXfI,.activity-heatmap_riseLine__p51Op{display:inline-block;white-space:nowrap}.activity-heatmap_scroller__H0UMb{overflow-x:auto;padding:4px 3px 8px;scrollbar-width:thin}.activity-heatmap_canvas__EHcCl{display:grid;grid-template-columns:var(--label-width) max-content;grid-template-rows:22px auto;width:max-content}.activity-heatmap_months__xLihM{position:relative;grid-column:2;grid-row:1;color:var(--muted-foreground)}.activity-heatmap_month__Tqe0k{position:absolute;left:calc(var(--col) * var(--pitch));top:0}.activity-heatmap_weekdays__IPego{display:grid;grid-template-rows:repeat(7,var(--cell));gap:var(--gap);grid-row:2}.activity-heatmap_weekday__PRBrT{color:var(--muted-foreground);font-size:10px;line-height:var(--cell)}.activity-heatmap_plot__LFVO_{position:relative;grid-column:2;grid-row:2}.activity-heatmap_grid__J6k_5{display:flex;flex-direction:column;gap:var(--gap)}.activity-heatmap_row__QsoXE{display:grid;grid-template-columns:repeat(var(--weeks),var(--cell));gap:var(--gap)}.activity-heatmap_cell__8ygj_,.activity-heatmap_swatch___x445{background:var(--level-0);border-radius:2px;width:var(--cell);height:var(--cell)}.activity-heatmap_cell__8ygj_{display:block;cursor:pointer;transition:background-color .42s cubic-bezier(.22,1,.36,1) var(--wave),opacity .16s ease}.activity-heatmap_root__Yef9P [data-level="1"]{background:var(--level-1)}.activity-heatmap_root__Yef9P [data-level="2"]{background:var(--level-2)}.activity-heatmap_root__Yef9P [data-level="3"]{background:var(--level-3)}.activity-heatmap_root__Yef9P [data-level="4"]{background:var(--level-4)}.activity-heatmap_cell__8ygj_[data-empty]{visibility:hidden;pointer-events:none}.activity-heatmap_cell__8ygj_:focus-visible,.activity-heatmap_swatch___x445:focus-visible{outline:2px solid var(--foreground);outline-offset:2px}.activity-heatmap_grid__J6k_5[data-reveal=hidden] .activity-heatmap_cell__8ygj_{opacity:0}.activity-heatmap_grid__J6k_5[data-reveal=revealing] .activity-heatmap_cell__8ygj_{animation:activity-heatmap_reveal__k_D6d .6s cubic-bezier(.16,1,.3,1) var(--wave) both}.activity-heatmap_grid__J6k_5[data-direction=back] .activity-heatmap_cell__8ygj_{transition-delay:var(--wave-back),0s}.activity-heatmap_grid__J6k_5[data-highlight="0"] .activity-heatmap_cell__8ygj_:not([data-level="0"]),.activity-heatmap_grid__J6k_5[data-highlight="1"] .activity-heatmap_cell__8ygj_:not([data-level="1"]),.activity-heatmap_grid__J6k_5[data-highlight="2"] .activity-heatmap_cell__8ygj_:not([data-level="2"]),.activity-heatmap_grid__J6k_5[data-highlight="3"] .activity-heatmap_cell__8ygj_:not([data-level="3"]),.activity-heatmap_grid__J6k_5[data-highlight="4"] .activity-heatmap_cell__8ygj_:not([data-level="4"]){opacity:.18}.activity-heatmap_ring__3povw{position:absolute;left:calc(var(--col) * var(--pitch) - 2px);top:calc(var(--row) * var(--pitch) - 2px);width:calc(var(--cell) + 4px);height:calc(var(--cell) + 4px);border:1px solid var(--foreground);border-radius:4px;pointer-events:none;opacity:0;transition:left .28s ease,top .28s ease,opacity .16s ease}.activity-heatmap_ring__3povw[data-shown]{opacity:1}.activity-heatmap_legend__92dAL{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;min-height:24px}.activity-heatmap_caption__1OMy0{color:var(--muted-foreground);min-width:0}.activity-heatmap_captionShort__L4L5s{display:none}.activity-heatmap_scale__6iS5o{display:flex;align-items:center;gap:8px;margin-left:auto}.activity-heatmap_legendText__1jlrK{color:var(--muted-foreground);font-size:11px}.activity-heatmap_swatches__3u4__{display:flex;gap:5px}.activity-heatmap_swatch___x445{position:relative;padding:0;border:0;cursor:pointer}.activity-heatmap_swatch___x445:before{content:"";position:absolute;inset:-6px -2px}.activity-heatmap_swatch___x445[aria-pressed=true]{outline:1px solid var(--foreground);outline-offset:2px}.activity-heatmap_tip__91Xcw{position:absolute;left:0;top:0;z-index:20;pointer-events:none}.activity-heatmap_bubble__eIbvx{position:absolute;bottom:10px;width:max-content;padding:10px 13px;border:1px solid var(--border);border-radius:12px;color:var(--popover-foreground);background:var(--popover);box-shadow:0 6px 18px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.06);transform-origin:center bottom}.activity-heatmap_tipBody__kzIF4{position:relative;display:block}.activity-heatmap_tipMeasure__ClZGB{position:absolute;visibility:hidden;display:flex;flex-direction:column;width:max-content}.activity-heatmap_tipLines__PptLg{display:flex;flex-direction:column;white-space:nowrap}.activity-heatmap_tipPrimary__VzLqv{font-size:12px;font-weight:600;line-height:1.5}.activity-heatmap_tipSecondary__eXl49{font-size:11px;color:var(--muted-foreground);line-height:1.5}.activity-heatmap_srOnly__AsSYT{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes activity-heatmap_reveal__k_D6d{0%{opacity:0;transform:translateY(4px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:480px){.activity-heatmap_captionLong__pomvQ{display:none}.activity-heatmap_captionShort__L4L5s{display:inline}}@media (prefers-reduced-motion:reduce){.activity-heatmap_cell__8ygj_,.activity-heatmap_ring__3povw{transition:none}.activity-heatmap_grid__J6k_5[data-reveal] .activity-heatmap_cell__8ygj_{animation:none}.activity-heatmap_grid__J6k_5[data-reveal=hidden] .activity-heatmap_cell__8ygj_{opacity:1}}.ProjectCard_card__YCvBo{display:flex;flex-direction:column;min-width:0}.ProjectCard_thumbnail__UNeEj{position:relative;display:block;height:144px;width:100%;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--muted)}.ProjectCard_grid__uzk0l{--grid-line:color-mix(in oklab,var(--foreground) 12%,transparent);position:absolute;inset:0;opacity:.5;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:24px 24px}.ProjectCard_backdrop__iTbkd{position:absolute;inset:0;opacity:0;transform:translateY(20px) scale(.7);background:radial-gradient(ellipse at center,var(--accent),transparent 75%);transition:transform .2s ease,opacity .2s ease}.ProjectCard_backgroundImage__DUVSv{object-fit:cover}.ProjectCard_preview__EfS5_{position:absolute;bottom:0;left:12.5%;width:75%;height:120px;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--card);transform:translateY(56px);transition:transform .5s cubic-bezier(.22,1,.36,1)}.ProjectCard_screenshot__e6Qre{object-fit:cover;object-position:top}.ProjectCard_initials__0tHMI{position:absolute;inset:0;display:grid;place-items:center;padding-top:14px;font-family:var(--font-instrument-serif),Georgia,serif;font-size:52px;letter-spacing:-.03em;color:var(--muted-foreground);opacity:.35;transition:transform .5s ease,opacity .3s ease}.ProjectCard_type__qy3PB{position:absolute;top:10px;left:10px;max-width:calc(100% - 20px);padding:4px 0;border:1px solid transparent;border-radius:6px;color:var(--muted-foreground);font-size:11px;white-space:nowrap;transition:left .3s ease,transform .3s ease,padding .3s ease,background-color .3s ease,border-color .3s ease,color .3s ease}.ProjectCard_body__8VmOU{padding:14px 8px 12px}.ProjectCard_heading__AtzBk{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin-bottom:6px}.ProjectCard_title__SlBJZ{min-width:0;margin:0;font-size:18px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}.ProjectCard_title__SlBJZ a{color:var(--foreground);text-decoration:none;background-image:linear-gradient(var(--muted-foreground),var(--muted-foreground));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .7s ease}.ProjectCard_external__DKaO_{justify-content:center;min-width:24px;min-height:24px}.ProjectCard_external__DKaO_,.ProjectCard_status__o5Yzg{display:inline-flex;align-items:center;color:var(--muted-foreground)}.ProjectCard_status__o5Yzg{gap:5px;margin-left:auto;white-space:nowrap;font-size:10px}.ProjectCard_status__o5Yzg[data-status=Live]{color:#047857}.ProjectCard_status__o5Yzg[data-status=Building]{color:#b45309}.dark .ProjectCard_status__o5Yzg[data-status=Live]{color:#34d399}.dark .ProjectCard_status__o5Yzg[data-status=Building]{color:#fb923c}.ProjectCard_dot__h_f3s{position:relative;width:6px;height:6px;border-radius:50%;background:currentColor}.ProjectCard_status__o5Yzg[data-status=Building] .ProjectCard_dot__h_f3s:after,.ProjectCard_status__o5Yzg[data-status=Live] .ProjectCard_dot__h_f3s:after{content:"";position:absolute;inset:0;border-radius:inherit;background:currentColor;animation:ProjectCard_pulse__eCY_9 2.4s ease-out infinite}.ProjectCard_description__IONeI{margin:0;font-size:12px;line-height:1.65;color:var(--muted-foreground);overflow-wrap:anywhere;transition:color .2s ease}.ProjectCard_footer__U8APA{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:auto;padding:4px 8px 10px}.ProjectCard_stack__KWIVW{display:flex;padding:0;margin:0;list-style:none}.ProjectCard_technology__dTA_9{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:2px solid var(--background);border-radius:50%;background:var(--muted);color:var(--muted-foreground);font-size:10px}.ProjectCard_technology__dTA_9+.ProjectCard_technology__dTA_9{margin-left:-6px}.ProjectCard_action__F7vdU{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;min-height:32px;font-size:12px;color:var(--muted-foreground)}.ProjectCard_action__F7vdU svg{opacity:0;transform:translateX(-4px) scale(.7);transition:opacity .2s ease,transform .2s ease}.ProjectCard_card__YCvBo a:focus-visible{outline:2px solid var(--ring);outline-offset:4px;border-radius:4px}.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_backdrop__iTbkd{opacity:1;transform:translateY(0) scale(1)}.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_preview__EfS5_{transform:translateY(20px)}.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_initials__0tHMI{opacity:.6;transform:translateY(-2px) scale(1.04)}.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_type__qy3PB{left:50%;transform:translateX(-50%);padding-inline:10px;color:var(--foreground);background:var(--card);border-color:var(--border)}.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_title__SlBJZ a{background-size:100% 1px}.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_action__F7vdU,.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_description__IONeI{color:var(--foreground)}.ProjectCard_card__YCvBo:is(:hover,:focus-within) .ProjectCard_action__F7vdU svg{opacity:1;transform:translateX(0) scale(1)}@keyframes ProjectCard_pulse__eCY_9{0%{transform:scale(1);opacity:.35}75%,to{transform:scale(2.4);opacity:0}}@media (hover:none){.ProjectCard_preview__EfS5_{transform:translateY(20px)}.ProjectCard_action__F7vdU{min-height:44px}.ProjectCard_action__F7vdU svg{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ProjectCard_card__YCvBo *,.ProjectCard_card__YCvBo :after{animation:none!important;transition:none!important}}