.contactspec:where(.astro-2l6i6grj){width:min(20rem,100%);font-family:var(--font-sans);padding:.5rem}.contactspec-eyebrow:where(.astro-2l6i6grj){font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--muted-foreground) / .72);margin:.25rem .5rem .6rem;font-size:.62rem}.contactspec-list:where(.astro-2l6i6grj){flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.contactspec-row:where(.astro-2l6i6grj){color:inherit;border-radius:9px;align-items:center;gap:11px;padding:9px 10px;text-decoration:none;transition:background .14s;display:flex;position:relative}.contactspec-row:where(.astro-2l6i6grj):hover{background:hsl(var(--foreground) / .05)}.contactspec-chip:where(.astro-2l6i6grj){background:hsl(var(--foreground) / .05);width:36px;height:36px;color:hsl(var(--muted-foreground));border-radius:10px;flex:none;place-items:center;transition:color .15s,background .15s;display:grid}.contactspec-chip:where(.astro-2l6i6grj) svg{width:17px;height:17px}.contactspec-body:where(.astro-2l6i6grj){flex-direction:column;gap:1px;min-width:0;display:flex}.contactspec-name:where(.astro-2l6i6grj){color:hsl(var(--foreground));font-size:13.5px;font-weight:500;line-height:1.3}.contactspec-handle:where(.astro-2l6i6grj){font-family:var(--font-mono);color:hsl(var(--muted-foreground));font-size:11.5px;line-height:1.3}.contactspec-arrow:where(.astro-2l6i6grj){width:15px;height:15px;color:hsl(var(--muted-foreground));opacity:0;flex:none;margin-left:auto;transition:opacity .14s,transform .14s,color .14s;transform:translate(-2px,2px)}.contactspec-row:where(.astro-2l6i6grj):hover .contactspec-arrow:where(.astro-2l6i6grj){opacity:1;transform:none}.contactspec-row:where(.astro-2l6i6grj)[data-channel=GitHub]:hover .contactspec-chip:where(.astro-2l6i6grj){color:#fff;background:#181717}.dark .contactspec-row:where(.astro-2l6i6grj)[data-channel=GitHub]:hover .contactspec-chip:where(.astro-2l6i6grj){color:#181717;background:#fff}.contactspec-row:where(.astro-2l6i6grj)[data-channel=Telegram]:hover .contactspec-chip:where(.astro-2l6i6grj){color:#fff;background:linear-gradient(#2aabee 0%,#229ed9 100%)}.contactspec-row:where(.astro-2l6i6grj)[data-channel=Telegram]:hover .contactspec-arrow:where(.astro-2l6i6grj){color:#26a5e4}.contactspec-row:where(.astro-2l6i6grj)[data-channel=Instagram]:hover .contactspec-chip:where(.astro-2l6i6grj){color:#fff;background-image:linear-gradient(45deg,#f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%)}.contactspec-row:where(.astro-2l6i6grj)[data-channel=Instagram]:hover .contactspec-arrow:where(.astro-2l6i6grj){color:#dc2743}.contactspec-row:where(.astro-2l6i6grj)[data-channel=Email]:hover .contactspec-chip:where(.astro-2l6i6grj){color:#fff;background:#ea4335}.contactspec-row:where(.astro-2l6i6grj)[data-channel=Email]:hover .contactspec-arrow:where(.astro-2l6i6grj){color:#ea4335}.updbtn:where(.astro-svxqjqdy){width:100%;height:100%;font-family:var(--font-sans);justify-content:center;align-items:center;gap:8px;display:inline-flex}.header-action-btn:where(.astro-svxqjqdy){border:1px solid hsl(var(--foreground) / .08);min-width:34px;height:34px;color:hsl(var(--muted-foreground));background:hsl(var(--background) / .8);backdrop-filter:blur(8px);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:0;padding:0 9px;transition:color .2s,background .2s,border-color .2s,gap .2s;display:inline-flex;overflow:hidden}.header-action-btn:where(.astro-svxqjqdy):hover,.header-action-btn:where(.astro-svxqjqdy):focus-visible{color:hsl(var(--foreground));background:hsl(var(--foreground) / .05);border-color:hsl(var(--foreground) / .15);gap:6px}.header-action-btn:where(.astro-svxqjqdy):active{transform:scale(.96)}.header-action-btn-label:where(.astro-svxqjqdy){opacity:0;white-space:nowrap;max-width:0;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:600;transition:max-width .2s,opacity .2s;display:inline-block;overflow:hidden}.header-action-btn:where(.astro-svxqjqdy):hover .header-action-btn-label:where(.astro-svxqjqdy),.header-action-btn:where(.astro-svxqjqdy):focus-visible .header-action-btn-label:where(.astro-svxqjqdy){opacity:1;max-width:8rem}.header-action-btn:where(.astro-svxqjqdy) svg:where(.astro-svxqjqdy){flex:none;width:15px;height:15px}.tagspec:where(.astro-nicr7csp){width:100%;font-family:var(--font-sans);container-type:inline-size}.tagspec-wall:where(.astro-nicr7csp){grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;min-height:20rem;display:grid}.tag-card:where(.astro-nicr7csp){--tag-color:var(--tag-accent);--image-color:var(--tag-accent);--tag-pad-x:24px;--row-h:46px;isolation:isolate;clip-path:inset(0 round 20px);background:hsl(var(--foreground) / .06);border:1px solid #0000;border-radius:20px;min-height:0;transition:border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.tag-card:where(.astro-nicr7csp):hover{border-color:color-mix(in srgb, var(--image-color) 50%, transparent);box-shadow:0 8px 24px color-mix(in srgb, var(--image-color) 25%, #0003)}.tag-card-bg:where(.astro-nicr7csp){z-index:1;color:inherit;text-decoration:none;display:block;position:absolute;inset:0}.tag-card-bg:where(.astro-nicr7csp)>img:where(.astro-nicr7csp){-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:filter .3s;position:absolute;inset:0}.tag-card:where(.astro-nicr7csp):hover .tag-card-bg:where(.astro-nicr7csp)>img:where(.astro-nicr7csp){filter:brightness(1.06)saturate(1.05)}.tag-card-bg:where(.astro-nicr7csp):after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#0000001f 0%,#00000094 100%);position:absolute;inset:0}.tag-card-header:where(.astro-nicr7csp){top:var(--tag-pad-x);left:var(--tag-pad-x);z-index:3;position:absolute}.tag-card-name:where(.astro-nicr7csp){color:#fff;letter-spacing:-.01em;text-shadow:0 1px 3px #0006;margin:0;font-size:22px;font-weight:700;line-height:1.3}.tag-card-count:where(.astro-nicr7csp){color:#ffffffe6;text-shadow:0 1px 2px #0000004d;font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:500}.tag-card-posts:where(.astro-nicr7csp){z-index:3;-webkit-backdrop-filter:blur(24px)saturate(180%)brightness(1.1);background:#00000040;position:absolute;inset:auto 0 0;box-shadow:inset 0 .5px #ffffff26}.tag-post-preview:where(.astro-nicr7csp){height:var(--row-h);padding:0 var(--tag-pad-x);color:inherit;border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;transition:background .15s;display:flex}.tag-post-preview:where(.astro-nicr7csp):last-child{border-bottom:none}.tag-post-preview:where(.astro-nicr7csp):hover{background:#ffffff1a}.tag-post-title:where(.astro-nicr7csp){color:#ffffffe0;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.tag-post-date:where(.astro-nicr7csp){color:#ffffffb3;text-shadow:0 1px 2px #0000004d;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}@container (width<=26rem){.tagspec-wall:where(.astro-nicr7csp){grid-template-columns:minmax(0,1fr);gap:.85rem;min-height:0}.tag-card:where(.astro-nicr7csp){min-height:14rem}}.components{--line:hsl(var(--foreground) / .1);--line2:hsl(var(--foreground) / .2);--surface:hsl(var(--foreground) / .02);--ease-out:cubic-bezier(.23, 1, .32, 1);--shell:min(64rem, 100% - 2.5rem)}body:has(.components):before{display:none}.components--index{isolation:isolate;background:hsl(var(--background));min-height:100vh;color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;position:relative}.cgrid-hero{width:min(84rem,100% - 2.5rem);margin:3.5rem auto 1.75rem}.cgrid-hero-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--foreground) / .45);margin:0 0 .6rem;font-size:.72rem}.cgrid-hero-title{max-width:18ch;font-family:var(--font-display);letter-spacing:-.035em;text-wrap:balance;color:hsl(var(--foreground));margin:0;font-size:clamp(1.9rem,4.5vw,3.1rem);font-weight:700;line-height:1.02}.cgrid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:5rem;gap:.75rem;width:min(84rem,100% - 2.5rem);margin:0 auto;padding-bottom:4rem;display:grid}.cgrid-tile{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:border-color .2s ease, box-shadow .3s var(--ease-out), translate .25s var(--ease-out);padding:0;display:flex;position:relative;overflow:hidden}.cgrid-tile:hover{border-color:var(--line2);translate:0 -3px;box-shadow:0 1px 2px #0000000d,0 14px 30px -14px #00000047}html.dark .cgrid-tile:hover{border-color:hsl(var(--foreground) / .28);box-shadow:0 1px 2px #0006,0 16px 34px -16px #000000b3}.cgrid-tile--iframe{background:hsl(var(--background))}.cgrid-tile iframe{border:0;width:100%;height:100%;display:block}.cgrid-cap{z-index:3;font-family:var(--font-sans);letter-spacing:-.005em;color:hsl(var(--foreground) / .6);pointer-events:none;background:linear-gradient(to top, hsl(var(--background) / .85), hsl(var(--background) / 0));padding:.95rem .9rem .6rem;font-size:.78rem;font-weight:500;position:absolute;bottom:0;left:0}.cgrid-cap--link{pointer-events:auto;transition:color .2s ease, transform .16s var(--ease-out);align-items:center;gap:.3rem;padding-top:1.05rem;padding-bottom:.75rem;text-decoration:none;display:inline-flex}.cgrid-cap--link:hover{color:hsl(var(--foreground))}.cgrid-cap--link:active{transform:scale(.97)}.cgrid-cap--link:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:2px;border-radius:var(--radius-sm)}.cgrid-cap-arrow{opacity:.45;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);flex-shrink:0}.cgrid-tile--link:hover .cgrid-cap-arrow,.cgrid-cap--link:hover .cgrid-cap-arrow,.cgrid-cap--link:focus-visible .cgrid-cap-arrow{opacity:1;transform:translate(1px,-1px)}.cgrid-stage{place-items:center;width:100%;height:100%;min-height:0;padding:1.5rem;display:grid;overflow:hidden}.cgrid-stage--projects{align-content:center;padding:1.75rem 1.5rem 2.5rem;overflow:visible}.cgrid-stage--contrib{align-content:center;place-items:center stretch;padding:1.75rem 1.75rem 3rem}.cgrid-stage--contrib .activity-section{flex-direction:column-reverse;align-items:stretch;gap:1rem;width:100%;margin:0}.cgrid-stage--contrib .activity-wave{flex:none;width:100%;height:3rem}.cgrid-stage--contrib .activity-stats{justify-content:flex-end}.cgrid-stage--hover{align-content:stretch;place-items:stretch stretch;padding:0;overflow:visible}.cgrid-stage--decode{align-items:center;padding:1.75rem 1.75rem 2rem;display:flex}.cgrid-tile--decode .decode-preview{letter-spacing:0;text-align:left;font-size:clamp(.72rem,1.05vw,.92rem);font-weight:500;line-height:1.7}.cgrid-stage--contact{place-items:center;padding:1.25rem}.cgrid-stage--tags{align-content:start;place-items:start stretch;padding:1.5rem 1.5rem 2.5rem}.cgrid-stage--moodbtn{place-items:center;padding:1.5rem}.cgrid-tile--projects{grid-area:1/1/7/6}.cgrid-tile--mood{grid-area:1/6/10/9}.cgrid-tile--decode{grid-area:1/9/5/13}.cgrid-tile--contact{grid-area:5/9/10/13}.cgrid-tile--listening{grid-area:7/1/10/6}.cgrid-tile--toc{grid-area:10/1/17/5}.cgrid-tile--tags{grid-area:10/5/15/13}.cgrid-tile--contrib{grid-area:15/5/17/9}.cgrid-tile--moodbtn{grid-area:15/9/17/13}.cgrid-tile--hover{grid-area:17/1/22/13;overflow:visible}.hoverlist{width:100%;max-width:70rem;height:100%;font-family:var(--font-sans);margin:0 auto;padding:1.5rem 2rem 2.5rem;position:relative}.hoverlist-rows{flex-direction:column;width:min(68%,44rem);margin:0;padding:0;list-style:none;display:flex;position:relative}.hoverlist-row{z-index:1;cursor:default;flex-direction:column;padding:.85rem 1rem;transition:opacity .25s;display:flex;position:relative}.hoverlist-excerpt{-webkit-line-clamp:2;color:hsl(var(--foreground) / .58);text-wrap:pretty;-webkit-box-orient:vertical;margin-top:.25rem;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}.hoverlist-title{font-family:var(--font-sans);letter-spacing:-.012em;color:hsl(var(--foreground) / .92);font-size:19px;font-weight:550;line-height:1.45}.hoverlist-meta{flex-shrink:0;align-items:center;gap:10px;margin-top:.55rem;display:inline-flex}.hoverlist-date{color:hsl(var(--foreground) / .42);font-variant-numeric:tabular-nums;font-size:13px;line-height:1.4}.hoverlist-tags{flex-wrap:wrap;gap:6px;display:inline-flex}.hoverlist-tag{color:hsl(var(--foreground) / .42);background:hsl(var(--foreground) / .04);border-radius:999px;padding:4px 9px;font-size:11.5px;line-height:1;transition:color .2s,background-color .2s}.hoverlist-row:hover .hoverlist-tag{color:hsl(var(--foreground) / .6);background:hsl(var(--foreground) / .07)}.hoverlist-rows.is-hovering .hoverlist-row:not(:hover){opacity:.4}.hoverlist-indicator{z-index:0;border-radius:var(--radius-md);background:hsl(var(--foreground) / .06);opacity:0;pointer-events:none;transition:transform .32s var(--ease-out), width .32s var(--ease-out), height .32s var(--ease-out), opacity .2s ease;will-change:transform;position:absolute;top:0;left:0}.hoverlist-preview{border-radius:var(--radius);background:hsl(var(--foreground) / .06);outline-offset:-1px;opacity:0;width:18rem;height:12rem;transition:opacity .24s var(--ease-out);pointer-events:none;will-change:transform;outline:1px solid #ffffff1a;position:absolute;top:0;right:-2rem;transform:translateY(1rem);box-shadow:0 18px 40px -18px #000000a6}.hoverlist-preview img{-o-object-fit:cover;object-fit:cover;border-radius:var(--radius);width:100%;height:100%;display:block}.hoverlist-preview.is-visible{opacity:1}.js .cgrid-tile{opacity:0;transform:translateY(14px)}.js .cgrid-tile.is-revealed{opacity:1;transition:opacity .55s var(--ease-out) calc(var(--i,0) * 55ms), transform .55s var(--ease-out) calc(var(--i,0) * 55ms), border-color .2s ease, box-shadow .3s var(--ease-out), translate .25s var(--ease-out);transform:none}@media (width<=900px){.cgrid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:5rem}.cgrid-tile--projects{grid-area:1/1/7/4}.cgrid-tile--mood{grid-area:1/4/10/7}.cgrid-tile--listening{grid-area:7/1/10/4}.cgrid-tile--decode{grid-area:10/1/14/4}.cgrid-tile--contact{grid-area:10/4/14/7}.cgrid-tile--toc{grid-area:14/1/21/4}.cgrid-tile--tags{grid-area:14/4/19/7}.cgrid-tile--contrib{grid-area:19/4/21/7}.cgrid-tile--moodbtn{grid-area:21/1/23/4}.cgrid-tile--hover{grid-area:21/4/23/7}}@media (width<=560px){.cgrid{grid-template-columns:1fr;grid-auto-rows:auto;gap:.6rem;width:calc(100% - 2rem)}.cgrid-tile{min-height:20rem;grid-area:auto/1/auto/-1!important}.cgrid-tile--mood,.cgrid-tile--toc{min-height:30rem}.cgrid-tile--decode{min-height:16rem}.cgrid-tile--listening{min-height:14rem}.hoverlist-rows{width:100%}.hoverlist-preview{display:none}}@media (prefers-reduced-motion:reduce){.js .cgrid-tile,.js .cgrid-tile.is-revealed{opacity:1;transition:opacity .3s;transform:none}.cgrid-tile:hover{translate:none}}.detail{width:var(--shell);grid-template-columns:minmax(0,1fr);gap:0;margin:0 auto;padding:2.5rem 0 6rem;display:grid}@media (width>=60rem){.detail{grid-template-columns:minmax(0,1fr) 12rem;gap:4rem}}.detail-main{min-width:0}.detail-title{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:1.25rem 0 0;font-size:clamp(1.9rem,3.5vw,2.4rem);font-weight:700;line-height:1.08}.detail-tagline{max-width:48ch;font-family:var(--font-sans);color:hsl(var(--muted-foreground));text-wrap:pretty;margin:.6rem 0 0;font-size:1.125rem;line-height:1.55}.detail-section{scroll-margin-top:6rem}.detail-section-label{font-family:var(--font-display);letter-spacing:-.01em;color:hsl(var(--foreground));margin:0 0 1rem;font-size:1.05rem;font-weight:600}.preview-frame{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);place-items:center;min-height:16rem;padding:2.5rem 2rem;display:grid;position:relative}.preview-frame--iframe{padding:0;overflow:hidden}.preview-frame iframe{border:0;width:100%;height:30rem;display:block}.detail-usage pre{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font-family:var(--font-code);margin:0;padding:1.15rem 1.25rem;font-size:.84rem;line-height:1.6;overflow-x:auto}.detail-credits{max-width:60ch;font-family:var(--font-sans);color:hsl(var(--muted-foreground));text-wrap:pretty;font-size:.92rem;line-height:1.6}.detail-credits a{color:hsl(var(--foreground));text-underline-offset:.2em}.detail-source{font-family:var(--font-sans);color:hsl(var(--muted-foreground));align-items:center;gap:.4rem;margin-top:1.5rem;font-size:.85rem;transition:color .15s;display:inline-flex}.detail-source:hover{color:hsl(var(--foreground))}.detail-back{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:fit-content;font-family:var(--font-sans);color:hsl(var(--foreground));align-items:center;gap:.5rem;margin-top:3.5rem;padding:.6rem .95rem .6rem .8rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:border-color .16s,background .16s;display:flex}.detail-back:hover{border-color:var(--line2);background:hsl(var(--foreground) / .04)}.detail-back:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:2px}.detail-back svg{color:hsl(var(--muted-foreground));transition:transform .16s var(--ease-out)}.detail-back:hover svg{transform:translate(-2px)}.breadcrumb{font-family:var(--font-mono);letter-spacing:.02em;color:hsl(var(--muted-foreground) / .7);align-items:center;gap:.5rem;font-size:.76rem;display:flex}.breadcrumb a{color:inherit;text-decoration:none;transition:color .15s}.breadcrumb a:hover{color:hsl(var(--foreground))}.breadcrumb-sep{color:hsl(var(--muted-foreground) / .35);user-select:none}.breadcrumb-current{color:hsl(var(--foreground) / .85)}.preview-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.9rem;display:flex}.decode-preview{font-family:var(--font-mono);text-align:center;color:hsl(var(--foreground));cursor:pointer;user-select:none;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:600;line-height:1.5}.preview-listening{justify-content:center;width:100%;display:flex}.preview-projects{width:min(100%,30rem)}.preview-contributions,.preview-hover-list{width:100%}.preview-contributions .activity-section{margin-top:0}.install-tabs{flex-direction:column;gap:.75rem;display:flex}.install-tabs-track{isolation:isolate;align-self:flex-start;display:inline-flex;position:relative}.install-tabs-layer{display:inline-flex}.install-tabs-layer--ink{pointer-events:none;transition:clip-path .18s var(--ease-out);position:absolute;inset:0}.install-tab{font-family:var(--font-sans);cursor:pointer;color:hsl(var(--muted-foreground));background:0 0;border:0;padding:.35rem .7rem;font-size:.85rem;font-weight:500}.install-tabs-layer--ink .install-tab{color:hsl(var(--foreground))}.install-tab:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:-2px;border-radius:var(--radius-sm)}.install-tabs-underline{background:hsl(var(--foreground));height:1.5px;transition:transform .18s var(--ease-out), width .18s var(--ease-out);position:absolute;bottom:0;left:0}.copy-command{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);align-items:center;gap:.75rem;padding:.7rem .7rem .7rem 1rem;display:flex}.copy-command-text{white-space:nowrap;min-width:0;font-family:var(--font-code);color:hsl(var(--foreground) / .9);scrollbar-width:none;flex:1;font-size:.82rem;overflow-x:auto}.copy-command-text::-webkit-scrollbar{display:none}.copy-command-btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:hsl(var(--background));width:2rem;height:2rem;color:hsl(var(--foreground));cursor:pointer;transition:transform .16s var(--ease-out), border-color .16s ease;flex-shrink:0;place-items:center;display:inline-grid;position:relative}.copy-command-btn:hover{border-color:var(--line2)}.copy-command-btn:active{transform:scale(.97)}.copy-command-btn:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:2px}.copy-command-icons{width:.9rem;height:.9rem;display:grid;position:relative}.copy-command-icon{grid-area:1/1;width:.9rem;height:.9rem;transition:opacity .2s,filter .2s}.copy-command-icon--copy{opacity:1;filter:blur()}.copy-command-icon--check,.copy-command-btn[data-copied] .copy-command-icon--copy{opacity:0;filter:blur(2px)}.copy-command-btn[data-copied] .copy-command-icon--check{opacity:1;filter:blur()}.copy-command-tip{border-radius:var(--radius-sm);background:hsl(var(--foreground));color:hsl(var(--background));font-family:var(--font-sans);white-space:nowrap;pointer-events:none;padding:.2rem .5rem;font-size:.7rem;font-weight:500;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}@media (hover:none){.copy-command-btn:active{transform:scale(.97)}}@media (prefers-reduced-motion:reduce){.install-tabs-layer--ink,.install-tabs-underline,.copy-command-icon{transition-duration:.01ms}}
