.particle-typography{touch-action:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.particle-typography canvas{width:100%;height:100%;display:block}
.github-calendar{flex-direction:column;gap:.75rem;width:100%;max-width:940px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.github-calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem;display:flex}.github-calendar-user{color:#fff;align-items:center;gap:.4rem;font-weight:500;text-decoration:none;transition:opacity .2s;display:inline-flex}.github-calendar-user:hover{opacity:.7}.github-calendar-user svg{fill:currentColor}.github-calendar-total{color:#ffffff80}.github-calendar-scroll{scrollbar-width:thin;margin-top:-2.25rem;padding-top:2.25rem;overflow:auto hidden}.github-calendar-grid{flex-wrap:nowrap;gap:3px;width:max-content;min-width:100%;display:flex;position:relative}.github-calendar-week{flex-direction:column;flex:1 1 0;gap:3px;min-width:9px;display:flex}.github-calendar-day,.github-calendar-day-empty{aspect-ratio:1;border-radius:2px;width:100%}.github-calendar-day{outline-offset:0;background:#ffffff0f;outline:1px solid #0000;transition:outline-color .15s;animation:.35s ease-out both github-calendar-pop}.github-calendar-day:hover{outline-color:#fff9}@keyframes github-calendar-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.github-calendar-day{animation:none}}.github-calendar-shape-square .github-calendar-day,.github-calendar-shape-square .github-calendar-day-empty{border-radius:0}.github-calendar-shape-circle .github-calendar-day,.github-calendar-shape-circle .github-calendar-day-empty{border-radius:50%}.github-calendar-shape-squircle .github-calendar-day,.github-calendar-shape-squircle .github-calendar-day-empty{border-radius:4px}.github-calendar-minimal .github-calendar-day,.github-calendar-minimal .github-calendar-day-empty{border-radius:50%;transform:scale(.75)}.github-calendar-green .github-calendar-level-1{background:#0e4429}.github-calendar-green .github-calendar-level-2{background:#006d32}.github-calendar-green .github-calendar-level-3{background:#26a641}.github-calendar-green .github-calendar-level-4{background:#39d353}.github-calendar-blue .github-calendar-level-1{background:#0d2d6b}.github-calendar-blue .github-calendar-level-2{background:#1f4fa8}.github-calendar-blue .github-calendar-level-3{background:#3b82f6}.github-calendar-blue .github-calendar-level-4{background:#7cb0ff}.github-calendar-purple .github-calendar-level-1{background:#3b1e6e}.github-calendar-purple .github-calendar-level-2{background:#5b2ca8}.github-calendar-purple .github-calendar-level-3{background:#a855f7}.github-calendar-purple .github-calendar-level-4{background:#c99cff}.github-calendar-orange .github-calendar-level-1{background:#6b2e0b}.github-calendar-orange .github-calendar-level-2{background:#a8500f}.github-calendar-orange .github-calendar-level-3{background:#f97316}.github-calendar-orange .github-calendar-level-4{background:#ffb066}.github-calendar-gray .github-calendar-level-1{background:#ffffff2e}.github-calendar-gray .github-calendar-level-2{background:#ffffff59}.github-calendar-gray .github-calendar-level-3{background:#fff9}.github-calendar-gray .github-calendar-level-4{background:#ffffffe6}.github-calendar-tooltip{z-index:5;color:#ffffffbf;white-space:nowrap;pointer-events:none;background:#141414f2;border:1px solid #ffffff1f;border-radius:6px;padding:.35rem .6rem;font-size:.75rem;position:absolute;transform:translate(-50%,calc(-100% - 8px));box-shadow:0 8px 24px #0009}.github-calendar-tooltip strong{color:#fff;font-weight:600}.github-calendar-skeleton{background:#ffffff0d;border-radius:12px;width:100%;max-width:940px;height:128px;margin:0 auto;animation:1.6s ease-in-out infinite github-calendar-pulse}@keyframes github-calendar-pulse{0%,to{opacity:1}50%{opacity:.45}}.github-calendar-error{color:#ffa0a0f2;background:#ff575714;border:1px solid #ff575759;border-radius:10px;width:100%;max-width:940px;margin:0 auto;padding:.85rem 1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.85rem}@media (max-width:768px){.github-calendar-week{min-width:8px}.github-calendar-header{font-size:.78rem}}
.portfolio{color:#fff;background:#000;border-top:1px solid #ffffff14;width:100%;min-height:100vh}.portfolio-hero{width:100%;padding:2.5rem 0 .5rem}.portfolio-hero-title{color:#fff;height:clamp(150px,22vw,240px);margin:0}.portfolio-hero-calendar{padding:0 3rem}.portfolio-hero-title-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.portfolio-section{max-width:960px;margin:0 auto;padding:3rem 3rem 4rem}.portfolio-section-title{color:#ffffff80;text-transform:uppercase;letter-spacing:.2em;text-align:left;margin:0 0 1.25rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.875rem;font-weight:400}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.75rem;display:grid}@media (max-width:768px){.portfolio-hero{padding:1.75rem 0 0}.portfolio-hero-calendar{padding:0 1.5rem}.portfolio-section{padding:2rem 1.5rem 3rem}.portfolio-grid{grid-template-columns:1fr}}
