*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{color:#111;background:#fff;min-height:100dvh;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline-offset:3px;outline:2px solid}::selection{color:#fff;background:#111}.above-fold{flex-direction:column;min-height:100dvh;display:flex}.site-nav{flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:1200px;margin:0 auto;padding:1rem 2rem;line-height:1.6;display:flex}.nav-left,.nav-links,.nav-right{align-items:baseline;display:flex}.nav-left{gap:1rem;min-width:0}.nav-right{color:#6b7280;flex-shrink:0;gap:1.5rem;font-size:.85rem}.nav-links{gap:1rem}.nav-logo{border:1px solid #111;border-radius:.25rem;flex-shrink:0;justify-content:center;align-self:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.65rem;font-weight:700;line-height:1;display:inline-flex}.nav-logo-text{color:#111;white-space:nowrap;font-size:.9rem;font-weight:600}.nav-link{color:#6b7280;font-size:.85rem}.nav-link:hover,.nav-right a:hover{color:#111}.nav-login{color:#6b7280;border:1px solid #d1d5db;border-radius:.375rem;padding:.4rem 1rem;transition:border-color .15s,color .15s}.nav-login:hover{border-color:#111}.nav-login-short{display:none}.hero{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.hero,.hero-headline{flex-direction:column;display:flex}.hero-headline{text-align:center;align-items:center;min-height:calc(100dvh - 5rem)}.hero-spacer{flex:1;min-height:0}.hero-spacer:first-child{flex:.45}.hero-title{letter-spacing:-.04em;overflow-wrap:anywhere;max-width:100%;margin-bottom:.75rem;font-size:clamp(2.7rem,7.2vw,6.3rem);font-weight:700;line-height:1}.contact-eyebrow,.github-caption,.hero-kicker,.item-date,.project-status,.section-kicker{color:#6b7280;font-size:.78rem}.hero-kicker{margin-bottom:.75rem}.hero-subtitle{color:#4b5563;width:min(100%,720px);font-size:.85rem;line-height:1.7}.card-actions,.contact-actions,.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;display:flex}.button-link{color:#6b7280;border:1px solid #d1d5db;border-radius:.375rem;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.button-link:hover{color:#111;border-color:#111}.button-link.primary{color:#fff;background:#111;border-color:#111}.button-link.primary:hover{background:#333}.term-player{--tp-bg:#1c1c1e;--tp-titlebar:#2c2c2e;--tp-tab-active:#3a3a3c;--tp-tab-text:#98989d;--tp-tab-active-text:#fff;--tp-text:#e5e5e7;--tp-prompt:#32d74b;--tp-url:#64d2ff;border-radius:.75rem;width:100%;max-width:720px;margin:0 auto 5rem;font-family:inherit;overflow:hidden;box-shadow:0 8px 40px #00000040,0 0 0 1px #ffffff0f}.tp-titlebar{background:var(--tp-titlebar);align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex;position:relative}.tp-dots{flex-shrink:0;gap:.4rem;display:flex}.tp-dot{border-radius:50%;width:.65rem;height:.65rem}.tp-dot-close{background:#ff5f57}.tp-dot-min{background:#febc2e}.tp-dot-max{background:#28c840}.tp-title{color:var(--tp-tab-text);white-space:nowrap;font-size:.7rem;font-weight:500;line-height:1;position:absolute;left:50%;transform:translate(-50%)}.tp-tabs{background:var(--tp-titlebar);scrollbar-width:none;border-bottom:1px solid #ffffff0f;gap:.125rem;padding:0 .5rem;display:flex;overflow-x:auto}.tp-tabs::-webkit-scrollbar{display:none}.tp-tab{color:var(--tp-tab-text);cursor:default;font:inherit;white-space:nowrap;background:0 0;border:0;border-radius:.375rem .375rem 0 0;padding:.45rem .75rem;font-size:.7rem;font-weight:500}.tp-tab.active{background:var(--tp-tab-active);color:var(--tp-tab-active-text)}.tp-screen{background:var(--tp-bg);scrollbar-color:#48484a transparent;scrollbar-width:thin;height:320px;padding:.75rem 1rem;overflow-y:auto}.tp-lines{color:var(--tp-text);font-size:.78rem;line-height:1.5}.tp-line{-moz-column-gap:.85rem;grid-template-columns:7.25rem minmax(0,1fr);align-items:start;column-gap:.85rem;min-height:1.5em;display:grid}.tp-line+.tp-line{margin-top:.25rem}.tp-command-line,.tp-cursor-line,.tp-status-line{gap:0;display:flex}.tp-label{color:#7f7f86;font-variant-numeric:tabular-nums;white-space:nowrap}.tp-type{animation:tp-type var(--duration) steps(var(--chars)) var(--delay) forwards;clip-path:inset(0 100% 0 0);overflow-wrap:anywhere;min-width:0;display:block}.tp-command-line .tp-type,.tp-status-line .tp-type{white-space:nowrap}.tp-cursor-line{animation:tp-line-show 1ms linear var(--delay) forwards;opacity:0}.tp-prompt-text{color:var(--tp-prompt)}.tp-cmd-text{color:var(--tp-text)}.tp-output-text{color:#a1a1a6}.tp-bold{font-weight:700}.tp-dim{color:#7f7f86}.tp-cursor{vertical-align:text-bottom;background:#fff;width:.55em;height:1.15em;animation:2s step-end infinite tp-blink;display:inline-block}@keyframes tp-blink{50%{opacity:0}}@keyframes tp-type{to{clip-path:inset(0)}}@keyframes tp-line-show{to{opacity:1}}@media (prefers-reduced-motion:reduce){.tp-type{clip-path:inset(0);animation:none}.tp-cursor-line{opacity:1;animation:none}}.feature-section{border-top:1px solid #e5e7eb;width:100%;max-width:960px;margin:0 auto;padding:5rem 2rem}.feature-inner{border-top:2px solid #111;padding-top:1.5rem}.section-heading{margin-bottom:2rem}.contact-title,.section-title{font-size:1.5rem;font-weight:600;line-height:1.25}.contact-eyebrow+.contact-title,.section-kicker+.section-title{margin-top:.4rem}.contact-body,.item-description,.project-description,.prose-copy p,.section-summary{color:#4b5563;font-size:.8rem;line-height:1.7}.prose-copy p+p{margin-top:.9rem}.card-grid,.project-grid,.skills-grid,.timeline{gap:1rem;display:grid}.content-card{border:1px solid #e5e7eb;border-radius:.5rem;padding:1.25rem}.item-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.35rem;display:flex}.content-card h3{font-size:1rem;font-weight:600;line-height:1.4}.item-date{text-align:right;flex-shrink:0}.item-meta{color:#6b7280;margin-bottom:.75rem;font-size:.75rem;line-height:1.6}.feature-section a:not(.button-link),.inline-link{text-underline-offset:.15em;text-decoration:underline}.feature-section a:not(.button-link):hover,.inline-link:hover{color:#111}.bullet-list{color:#4b5563;gap:.45rem;margin-top:.9rem;padding-left:1.1rem;font-size:.78rem;line-height:1.65;display:grid}.tag-list{flex-wrap:wrap;gap:.4rem;margin-top:1rem;list-style:none;display:flex}.tag-pill{color:#6b7280;border:1px solid #e5e7eb;border-radius:999px;padding:.2rem .45rem;font-size:.7rem;line-height:1.4}.project-status{margin-bottom:.35rem}.project-description{margin-top:.5rem}.card-actions{justify-content:flex-start;margin-top:1rem}.github-card{--github-none:#ebedf0;--github-first-quartile:#9be9a8;--github-second-quartile:#40c463;--github-third-quartile:#30a14e;--github-fourth-quartile:#216e39}.github-summary{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.github-total{font-size:1.4rem;font-weight:600;line-height:1}.github-scroll{padding-bottom:.5rem;overflow-x:auto}.calendar-months{color:#6b7280;grid-auto-columns:11px;grid-auto-flow:column;gap:3px;margin-left:2rem;font-size:.65rem;display:grid}.month-cell{width:11px;min-height:1rem}.calendar-layout{gap:.45rem;display:flex}.day-labels{color:#6b7280;grid-template-rows:repeat(7,11px);gap:3px;font-size:.62rem;display:grid}.day-labels span:first-child{grid-row:2}.day-labels span:nth-child(2){grid-row:4}.day-labels span:nth-child(3){grid-row:6}.calendar-grid{grid-auto-columns:11px;grid-auto-flow:column;gap:3px;display:grid}.week-column{grid-template-rows:repeat(7,11px);gap:3px;display:grid}.day-cell{border-radius:2px;width:11px;height:11px}.github-legend{color:#6b7280;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.65rem;display:flex}.legend-colors{gap:3px;display:flex}.contact-inner{text-align:center}.contact-body{width:min(100%,640px);margin:.75rem auto 0}.site-footer{color:#9ca3af;border-top:1px solid #e5e7eb;gap:1rem;padding:2rem;font-size:.8rem}.footer-links,.site-footer{justify-content:center;display:flex}.footer-links{flex-wrap:wrap;gap:.5rem 1rem}.footer-link+.footer-link:before{color:#d1d5db;content:"*";margin-right:1rem}.footer-link:hover{color:#111;text-decoration:underline}@media (width<=900px){.nav-links{display:none}.hero-title{font-size:clamp(2.25rem,8vw,7rem)}.github-summary,.item-heading{flex-direction:column;align-items:flex-start}.item-date{text-align:left}}@media (width<=640px){.site-nav{padding:.75rem 1rem}.nav-left{gap:.5rem}.nav-logo-text{font-size:.8rem}.nav-login{padding:.3rem .6rem;font-size:.75rem}.nav-login-full{display:none}.nav-login-short{display:inline}.above-fold{padding-bottom:3rem}.hero{padding:2rem 1rem 0}.hero-headline{min-height:calc(100dvh - 6rem)}.hero-title{font-size:clamp(1.75rem,11vw,2.75rem)}.hero-spacer{flex:0;min-height:2.5rem}.hero-spacer:first-child{min-height:0}.hero-spacer:last-child{min-height:5rem}.term-player{border-radius:.5rem;margin-bottom:3rem}.tp-screen{height:280px;padding:.5rem .75rem}.tp-lines{font-size:.68rem}.feature-section{padding:3rem 1rem}.contact-title,.section-title{font-size:1.25rem}.site-footer{padding:2rem 1rem}}@media (prefers-color-scheme:dark){body{color:#f3f4f6;background:#111}::selection{color:#111;background:#f3f4f6}.nav-logo{border-color:#f3f4f6}.nav-logo-text{color:#f3f4f6}.calendar-months,.contact-eyebrow,.day-labels,.github-caption,.github-legend,.hero-kicker,.item-date,.item-meta,.nav-link,.nav-login,.nav-right,.project-status,.section-kicker,.tag-pill{color:#9ca3af}.feature-section a:not(.button-link):hover,.footer-link:hover,.inline-link:hover,.nav-link:hover,.nav-right a:hover{color:#f3f4f6}.nav-login{border-color:#4b5563}.nav-login:hover{border-color:#f3f4f6}.bullet-list,.button-link,.contact-body,.hero-subtitle,.item-description,.project-description,.prose-copy p,.section-summary{color:#9ca3af}.button-link{border-color:#4b5563}.button-link:hover{color:#f3f4f6;border-color:#f3f4f6}.button-link.primary{color:#111;background:#f3f4f6;border-color:#f3f4f6}.button-link.primary:hover{background:#d1d5db}.feature-section,.site-footer{border-top-color:#2a2a2a}.feature-inner{border-top-color:#f3f4f6}.content-card,.tag-pill{border-color:#2a2a2a}.github-card{--github-none:#2a2a2a;--github-first-quartile:#0e4429;--github-second-quartile:#006d32;--github-third-quartile:#26a641;--github-fourth-quartile:#39d353}.footer-link+.footer-link:before{color:#3f3f46}}
