body.hc-home{--hc-home-canvas:#fff;background:var(--hc-home-canvas)}html:has(body.hc-home){background:#fff}body.hc-home .hc-main{padding-top:0}.hc-home-shell{width:min(100%,1280px);min-height:100vh;margin-inline:auto;padding:3rem 1.5rem}@media (width>=48rem){.hc-home-shell{padding:4rem 3rem}}@media (width>=64rem){.hc-home-shell{justify-content:space-between;gap:1rem;padding:0 3rem;display:flex}}.hc-home-header{display:block}@media (width>=64rem){.hc-home-header{flex-direction:column;justify-content:space-between;align-self:flex-start;gap:3rem;width:42%;max-height:100vh;padding-block:6rem;display:flex;position:sticky;top:0}}.hc-home-header__portrait{background:color-mix(in srgb, var(--hc-accent) 18%, var(--hc-home-canvas));border-radius:50%;width:88px;height:88px;margin:0 0 1.5rem;overflow:hidden}.hc-home-header__portrait img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.hc-home-header__name{color:var(--hc-text);letter-spacing:-.02em;margin:0;font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.1}.hc-home-header__name a{color:inherit;text-decoration:none}.hc-home-header__name a:hover,.hc-home-header__name a:focus-visible{color:var(--hc-accent-text)}.hc-home-header__role{color:var(--hc-text);margin:.75rem 0 0;font-size:1.125rem;font-weight:500;line-height:1.4}.hc-home-header__intro{max-width:20rem;color:var(--hc-text-muted);margin:1rem 0 0;font-size:1rem;line-height:1.6}.hc-home-nav{margin-top:2.5rem}.hc-home-nav ul{flex-wrap:wrap;gap:1rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.hc-home-nav a{color:var(--hc-text-muted);align-items:center;gap:.75rem;text-decoration:none;display:flex}.hc-home-nav__text{letter-spacing:.07em;text-transform:uppercase;font-size:.75rem;font-weight:700;line-height:1.4}.hc-home-nav__indicator{display:none}@media (width>=64rem){.hc-home-nav{margin-top:4rem}.hc-home-nav ul{gap:0;width:max-content;display:grid}.hc-home-nav a{padding-block:.75rem}.hc-home-nav__indicator{background:color-mix(in srgb, var(--hc-text-muted) 55%, transparent);width:2rem;height:1px;transition:width var(--hc-dur-base) var(--hc-ease-out), background-color var(--hc-dur-base) var(--hc-ease-out);display:block}.hc-home-nav a:hover .hc-home-nav__text,.hc-home-nav a:focus-visible .hc-home-nav__text,.hc-home-nav a.is-active .hc-home-nav__text{color:var(--hc-text)}.hc-home-nav a:hover .hc-home-nav__indicator,.hc-home-nav a:focus-visible .hc-home-nav__indicator,.hc-home-nav a.is-active .hc-home-nav__indicator{background:var(--hc-accent);width:4rem}}.hc-home-header__footer{margin-top:2.5rem}.hc-home-header__actions{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.hc-home-resume,.hc-home-inquiry{color:var(--hc-text);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--hc-accent) 70%, transparent);text-underline-offset:3px;transition:color var(--hc-dur-fast) var(--hc-ease-out);font-size:.875rem;font-weight:600;text-decoration-thickness:2px}.hc-home-resume:hover,.hc-home-resume:focus-visible,.hc-home-inquiry:hover,.hc-home-inquiry:focus-visible{color:var(--hc-accent-text);text-decoration-color:var(--hc-accent)}.hc-home-inquiry span{font-size:.75em}.hc-home-social{align-items:center;gap:1.25rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.hc-home-social a{color:var(--hc-text-muted);transition:color var(--hc-dur-fast) var(--hc-ease-out);display:block}.hc-home-social a:hover,.hc-home-social a:focus-visible{color:var(--hc-accent-text)}.hc-home-main{min-width:0;padding-top:5rem}@media (width>=64rem){.hc-home-main{width:58%;padding-block:6rem}}.hc-home-section{margin-bottom:4rem;scroll-margin-top:2rem}@media (width>=48rem){.hc-home-section{margin-bottom:6rem}}@media (width>=64rem){.hc-home-section{margin-bottom:9rem}}.hc-home-section-label{z-index:20;background:color-mix(in srgb, var(--hc-home-canvas) 82%, transparent);backdrop-filter:blur(12px);margin:0 -1.5rem 1rem;padding:1rem 1.5rem;position:sticky;top:0}.hc-home-section-title{color:var(--hc-text);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700;line-height:1.4}@media (width>=48rem){.hc-home-section-label{margin:0 -3rem 1rem;padding:1rem 3rem}}@media (width>=64rem){.hc-home-section-label{backdrop-filter:none;background:0 0;margin:0 0 1rem;padding:0;position:static}.hc-home-section-title{color:var(--hc-text)}}.hc-home-section-body>p{color:var(--hc-text-muted);margin:0 0 1rem;font-size:1rem;line-height:1.7}.hc-home-section-body>p:last-child{margin-bottom:0}.hc-home-section-body p a{color:var(--hc-text);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--hc-accent) 70%, transparent);text-underline-offset:3px;transition:color var(--hc-dur-fast) var(--hc-ease-out);font-weight:500;text-decoration-thickness:2px}.hc-home-section-body p a:hover,.hc-home-section-body p a:focus-visible{color:var(--hc-accent-text);text-decoration-color:var(--hc-accent)}.hc-home-projects{margin:0;padding:0;list-style:none}.hc-home-projects:hover .hc-home-project{opacity:.5}.hc-home-projects:hover .hc-home-project:hover{opacity:1}.hc-home-project{margin-bottom:3rem}.hc-home-project a{color:inherit;transition:background-color var(--hc-dur-fast) var(--hc-ease-out);border-radius:.75rem;grid-template-columns:1fr;gap:1rem;margin:0 -.75rem;padding:.75rem;text-decoration:none;display:grid;position:relative}.hc-home-project a:hover,.hc-home-project a:focus-visible{background:color-mix(in srgb, var(--hc-text) 4%, transparent)}.hc-home-project__media{margin:0}.hc-home-project__media img{aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border:1px solid var(--hc-border);width:100%;transition:border-color var(--hc-dur-fast) var(--hc-ease-out);border-radius:.5rem}.hc-home-project a:hover .hc-home-project__media img,.hc-home-project a:focus-visible .hc-home-project__media img{border-color:color-mix(in srgb, var(--hc-accent) 60%, var(--hc-border))}.hc-home-project h3{color:var(--hc-text);align-items:center;gap:.5rem;margin:0;font-size:1rem;font-weight:500;line-height:1.3;display:flex}.hc-home-project a:hover h3,.hc-home-project a:focus-visible h3{color:var(--hc-accent-text)}.hc-home-project__content>p{color:var(--hc-text-muted);margin:.5rem 0 0;font-size:.875rem;line-height:1.6}.hc-home-archive-link,.hc-home-experience-resume{color:var(--hc-text);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--hc-accent) 70%, transparent);text-underline-offset:4px;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;text-decoration-thickness:2px;display:inline-flex}.hc-home-archive-link svg{color:var(--hc-accent-text);transition:transform var(--hc-dur-base) var(--hc-ease-out)}.hc-home-archive-link:hover,.hc-home-archive-link:focus-visible,.hc-home-experience-resume:hover,.hc-home-experience-resume:focus-visible{color:var(--hc-accent-text);text-decoration-color:var(--hc-accent)}.hc-home-archive-link:hover svg,.hc-home-archive-link:focus-visible svg{transform:translate(3px)}@media (width>=40rem){.hc-home-project a{grid-template-columns:repeat(8,minmax(0,1fr));gap:1rem}.hc-home-project__media{order:1;grid-column:span 2}.hc-home-project__content{order:2;grid-column:span 6}}.hc-home-experience{margin:0;padding:0;list-style:none}.hc-home-job{margin-bottom:3rem}.hc-home-job:last-child{margin-bottom:0}.hc-home-job__period{color:var(--hc-text-muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .5rem;font-size:.75rem;font-weight:600;line-height:1.4}.hc-home-job h3{color:var(--hc-text);flex-wrap:wrap;align-items:baseline;gap:.25rem;margin:0;font-size:1rem;font-weight:500;line-height:1.35;display:flex}.hc-home-job__company{color:var(--hc-text);align-items:center;gap:.25rem;display:inline-flex}.hc-home-job h3 a{color:var(--hc-text);transition:color var(--hc-dur-fast) var(--hc-ease-out);align-items:center;gap:.25rem;text-decoration:none;display:inline-flex}.hc-home-job h3 a:hover,.hc-home-job h3 a:focus-visible{color:var(--hc-accent-text)}.hc-home-job h3 a svg{color:var(--hc-accent-text);transition:transform var(--hc-dur-base) var(--hc-ease-out);flex:none}.hc-home-job h3 a:hover svg,.hc-home-job h3 a:focus-visible svg{transform:translate(1px,-1px)}.hc-home-job__content>p{color:var(--hc-text-muted);margin:.5rem 0 0;font-size:.875rem;line-height:1.6}.hc-home-experience-resume{margin-top:2rem}@media (width>=40rem){.hc-home-job{grid-template-columns:repeat(8,minmax(0,1fr));gap:1rem;display:grid}.hc-home-job__period{grid-column:span 2;margin-top:.2rem}.hc-home-job__content{grid-column:span 6}}.hc-home-blog{margin:0;padding:0;list-style:none}.hc-home-blog-post{margin-bottom:2.25rem}.hc-home-blog-post:last-child{margin-bottom:0}.hc-home-blog-post__link{color:inherit;text-decoration:none;display:block}.hc-home-blog-post__meta{color:var(--hc-text-muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .5rem;font-size:.75rem;font-weight:600;line-height:1.4}.hc-home-blog-post h3{color:var(--hc-text);transition:color var(--hc-dur-fast) var(--hc-ease-out);margin:0;font-size:1rem;font-weight:500;line-height:1.35}.hc-home-blog-post__link:hover h3,.hc-home-blog-post__link:focus-visible h3{color:var(--hc-accent-text)}.hc-home-blog-post__body>p{color:var(--hc-text-muted);margin:.5rem 0 0;font-size:.875rem;line-height:1.6}.hc-home-blog-archive{color:var(--hc-text);text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--hc-accent) 70%, transparent);text-underline-offset:4px;transition:color var(--hc-dur-fast) var(--hc-ease-out);margin-top:2rem;font-size:.95rem;font-weight:600;text-decoration-thickness:2px;display:inline-block}.hc-home-blog-archive:hover,.hc-home-blog-archive:focus-visible{color:var(--hc-accent-text);text-decoration-color:var(--hc-accent)}@media (width>=40rem){.hc-home-blog-post__link{grid-template-columns:repeat(8,minmax(0,1fr));gap:1rem;display:grid}.hc-home-blog-post__meta{grid-column:span 2;margin-top:.2rem}.hc-home-blog-post__body{grid-column:span 6}}.hc-home-tags{flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.hc-home-tags li{background:var(--hc-warning-surface);color:var(--hc-warning);border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:500;line-height:1.25rem}@media (prefers-reduced-motion:reduce){.hc-home-nav__indicator,.hc-home-archive-link svg,.hc-home-job h3 a svg{transition:none}}
