#preview-backdrop{position:fixed;inset:0;z-index:999;pointer-events:none;background:#0006;opacity:0;transition:opacity .2s ease-out}#preview-backdrop.visible{opacity:1;pointer-events:auto}.hover-preview-trigger{cursor:default;text-decoration:underline;text-decoration-color:var(--text-tertiary);text-underline-offset:2px;transition:text-decoration-color .15s ease-out;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.hover-preview-trigger:hover{text-decoration-color:var(--text-primary)}@media(hover:none)and (pointer:coarse){.hover-preview-trigger:active{text-decoration-color:var(--text-secondary)}}#hover-preview-container{position:absolute;z-index:1000;pointer-events:none;transform:translate(-50%) scale(.9);opacity:0;transition:opacity .15s cubic-bezier(.34,1.56,.64,1),transform .2s cubic-bezier(.34,1.56,.64,1);will-change:transform,opacity}#hover-preview-container.visible{opacity:1;transform:translate(-50%) scale(1);pointer-events:auto}#hover-preview-container.mobile{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9)}#hover-preview-container.mobile.visible{transform:translate(-50%,-50%) scale(1)}.preview-inner{border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014}#hover-preview-container .preview-image,#hover-preview-container .preview-video{display:none;width:auto;max-width:280px;height:auto;max-height:350px;object-fit:contain}@media(hover:none)and (pointer:coarse){#hover-preview-container .preview-image,#hover-preview-container .preview-video{width:auto;height:min(75vh,550px);max-width:90vw;object-fit:contain}.preview-inner{box-shadow:0 16px 48px #0000004d}}:global(html.dark) .preview-inner{box-shadow:0 8px 24px #0006,0 2px 8px #0000004d}:global(html.dark) #hover-preview-container.mobile .preview-inner{box-shadow:0 16px 48px #0009}.github-hover-preview-trigger{cursor:default;text-decoration:underline;text-decoration-color:var(--text-tertiary);text-underline-offset:2px;transition:text-decoration-color .15s ease-out;-webkit-tap-highlight-color:transparent;user-select:none}.github-hover-preview-trigger:hover{text-decoration-color:var(--text-primary)}@media(hover:none)and (pointer:coarse){.github-hover-preview-trigger:active{text-decoration-color:var(--text-secondary)}}#gh-hover-preview-container{position:absolute;z-index:1000;pointer-events:none;transform:translate(-50%) scale(.9);opacity:0;transition:opacity .15s cubic-bezier(.34,1.56,.64,1),transform .2s cubic-bezier(.34,1.56,.64,1);will-change:transform,opacity}#gh-hover-preview-container.visible{opacity:1;transform:translate(-50%) scale(1);pointer-events:auto}#gh-hover-preview-container.mobile{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9)}#gh-hover-preview-container.mobile.visible{transform:translate(-50%,-50%) scale(1)}.gh-preview-content{background:var(--bg);border:.5px solid var(--border);border-radius:12px;padding:1rem;box-shadow:0 8px 24px #0000001f,0 2px 8px #00000014;width:fit-content}:global(html.dark) .gh-preview-content{box-shadow:0 8px 24px #0006,0 2px 8px #0000004d}.gh-preview-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem;color:var(--text-primary)}.gh-header-left{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.gh-preview-username{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--text-secondary)}.gh-contributions-text{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap}.gh-cal-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.gh-cal-svg{display:block}.gh-cal-day.level-0{fill:#80808026}.gh-cal-day.level-1{fill:#0e4429}.gh-cal-day.level-2{fill:#006d32}.gh-cal-day.level-3{fill:#26a641}.gh-cal-day.level-4{fill:#39d353}.gh-cal-day:hover{stroke:var(--text-primary);stroke-width:1px}.gh-preview-content.loading{min-height:100px;min-width:200px;display:flex;align-items:center;justify-content:center}.gh-loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--text-primary);border-radius:50%;animation:gh-spin .8s linear infinite}@keyframes gh-spin{to{transform:rotate(360deg)}}.gh-preview-content.error{min-height:80px;min-width:150px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:var(--font-size-s)}@media(hover:none)and (pointer:coarse){.gh-preview-content{box-shadow:0 16px 48px #00000040}:global(html.dark) .gh-preview-content{box-shadow:0 16px 48px #00000080}}.about[data-astro-cid-5vtmhcfp]:not(:empty){margin-bottom:1.25rem}.about[data-astro-cid-5vtmhcfp].prose{font-family:var(--sans)}
