*{padding:0;margin:0;border:0;outline:0;background-color:inherit;color:inherit;font-family:inherit;font-size:inherit;box-sizing:border-box}:root{--radius-sm: 10px;--radius-md: 16px;--radius-lg: 20px;--header-height: 5.6em}html{scroll-behavior:smooth}body{font-family:Inter,sans-serif;line-height:1.55;color:var(--clr-fg);background:var(--clr-bg)}.page-404{min-height:100dvh;display:flex;flex-direction:column}.page-404 main{flex:1;display:grid;align-items:center}.page-404 .footer{margin-top:0}.light{--clr-bg: linear-gradient(180deg, #f5f7fb 0%, #eef2f7 100%);--clr-bg-solid: #edf1f8;--clr-surface: #ffffff;--clr-surface-2: #f4f7fc;--clr-fg: #1f2430;--clr-fg-muted: #4e5768;--clr-border: #d5dceb;--clr-primary: #2c69ff;--clr-primary-strong: #1d4fd0;--clr-hover: #e6eeff;--clr-code-bg: #eef3ff;--shadow: 0 16px 40px rgba(30, 43, 77, .12)}.dark{--clr-bg: linear-gradient(180deg, #0f1117 0%, #141925 50%, #11141d 100%);--clr-bg-solid: #11141d;--clr-surface: #181d2a;--clr-surface-2: #1f2534;--clr-fg: #e8edf8;--clr-fg-muted: #a4aec4;--clr-border: #2e364a;--clr-primary: #6ea8ff;--clr-primary-strong: #8cb8ff;--clr-hover: #25314a;--clr-code-bg: #1b2537;--shadow: 0 14px 34px rgba(0, 0, 0, .35)}::selection{background:var(--clr-primary);color:#0f1117}h1,h2,h3,h4{line-height:1.2;color:var(--clr-fg)}h1{font-size:clamp(1.9rem,3.8vw,2.65rem);letter-spacing:-.02em}h2{font-size:clamp(1.3rem,2.7vw,1.9rem)}h3{font-size:1.25rem}ul{list-style-type:none}a{text-decoration:none}img{max-width:100%}.link{color:var(--clr-primary);position:relative;transition:color .2s ease}.link:after{content:"";width:0;height:2px;background:var(--clr-primary);position:absolute;left:0;bottom:-.2rem;transition:width .2s ease}.link:hover,.link:focus-visible{color:var(--clr-primary-strong)}.link:hover:after,.link:focus-visible:after{width:100%}.link--nav{color:var(--clr-fg-muted);font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.72em 1.12em;border-radius:var(--radius-sm);border:1px solid transparent;transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}.btn:hover,.btn:focus-visible{transform:translateY(-2px)}.btn--outline{color:var(--clr-primary);border-color:var(--clr-primary);background:transparent}.btn--outline:hover,.btn--outline:focus-visible{color:#0f1117;background:var(--clr-primary)}.btn--plain{background:var(--clr-surface-2);border:1px solid var(--clr-border);color:var(--clr-fg-muted)}.btn--plain:hover,.btn--plain:focus-visible{background:var(--clr-hover);border-color:var(--clr-primary);color:var(--clr-fg)}.btn--surface{background:var(--clr-surface-2);border:1px solid var(--clr-border);color:var(--clr-fg)}.btn--surface:hover,.btn--surface:focus-visible{background:var(--clr-hover);border-color:var(--clr-primary)}.center{display:flex;align-items:center}.header{min-height:var(--header-height);max-width:1160px;width:94%;margin:0 auto;justify-content:space-between;gap:1rem}.brand-link{font-size:.98rem;font-weight:600;letter-spacing:.02em;color:var(--clr-fg-muted)}.brand-link:hover{color:var(--clr-fg)}.nav__list{display:flex;gap:1rem}main{max-width:1160px;width:94%;margin:0 auto}.section{margin-top:3rem}.section--narrow{max-width:820px;margin-left:auto;margin-right:auto}.section__title{text-align:center;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.08em;color:var(--clr-fg-muted);font-size:.86rem}.section__title--left{text-align:left}.about{display:grid;gap:.9rem;max-width:760px}.about__eyebrow{color:var(--clr-primary);font-weight:600;letter-spacing:.03em}.about__role{color:var(--clr-fg-muted);font-weight:500}.about__desc{color:var(--clr-fg-muted);max-width:720px}.about__contact{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.7rem}.contact-link{display:inline-flex;align-items:center;gap:.45rem;padding:.68rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--clr-border);background:var(--clr-surface-2);color:var(--clr-fg);font-weight:500;transition:all .2s ease}.contact-link:hover,.contact-link:focus-visible{border-color:var(--clr-primary);background:var(--clr-hover);color:var(--clr-primary-strong)}.contact-link__icon{width:1.1rem;height:1.1rem;flex-shrink:0}.projects__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.3rem}.project{position:relative;display:grid;gap:.9rem;min-height:19rem;padding:1.4rem;background:var(--clr-surface);border-radius:var(--radius-md);border:1px solid var(--clr-border);box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease,background-color .2s ease}.project:hover,.project:focus-within{transform:translateY(-5px);border-color:var(--clr-primary);background:var(--clr-surface-2)}.project__card-link{position:absolute;inset:0;border-radius:var(--radius-md);z-index:0}.project>*:not(.project__card-link){position:relative;z-index:1}.project__description{color:var(--clr-fg-muted);min-height:5rem}.project__stack{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto}.project__stack-item{padding:.35rem .65rem;border-radius:999px;font-size:.77rem;color:var(--clr-primary-strong);border:1px solid color-mix(in srgb,var(--clr-primary) 35%,transparent);background:color-mix(in srgb,var(--clr-primary) 12%,transparent)}.project__actions{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:.8rem}.project__icon-link{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:999px;border:1px solid var(--clr-border);background:var(--clr-surface-2);color:var(--clr-fg)}.project__icon-link:hover,.project__icon-link:focus-visible{border-color:var(--clr-primary);color:var(--clr-primary-strong);background:var(--clr-hover)}.project__icon-svg{width:1.2rem;height:1.2rem}.project__details-link{font-size:.84rem}.skills__list{max-width:720px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem}.footer{padding:2.3rem 0;margin-top:3.5rem;text-align:center}.footer__link{font-size:.85rem;color:var(--clr-fg-muted)}.project-detail__back{display:inline-block;margin-bottom:1.2rem}.project-detail__header{display:grid;gap:1rem;margin-bottom:1.6rem}.project-detail__summary{color:var(--clr-fg-muted)}.project-detail__stack{display:flex;flex-wrap:wrap;gap:.6rem}.project-detail__stack li{padding:.42rem .78rem;border-radius:999px;border:1px solid var(--clr-border);background:var(--clr-surface);color:var(--clr-fg-muted)}.project-detail__links{display:flex;flex-wrap:wrap;gap:.8rem}.project-detail__content{display:grid;gap:1rem;color:var(--clr-fg-muted)}.project-detail__content h2{margin-bottom:.5rem;margin-top:.9em}.project-detail__content h3,.project-detail__content h4{margin-top:.9em}.project-detail__content ul,.project-detail__content ol{margin-left:1.5em}.project-detail__content ul{list-style:disc}.project-detail__content ol{list-style:decimal}.project-detail__content a{color:var(--clr-primary)}.project-detail__content hr{border-top:1px solid var(--clr-border)}.project-detail__content blockquote{border-left:4px solid var(--clr-primary);padding-left:1em}.project-detail__content table{width:100%;border-collapse:collapse}.project-detail__content th,.project-detail__content td{border:1px solid var(--clr-border);padding:.75em;text-align:left}.project-detail__content pre{overflow-x:auto;padding:1em;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-sm)}.project-detail__content code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background:var(--clr-code-bg);padding:.12em .36em;border-radius:.35em;font-size:.92rem}.project-detail__content pre code{padding:0;background:transparent}.resume-page{display:grid;gap:1rem}.posts-page__intro{margin-bottom:2em;color:var(--clr-fg-muted)}.posts-list{display:grid;gap:1rem}.post-card{border-radius:var(--radius-md);border:1px solid var(--clr-border);background:var(--clr-surface);box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease;overflow:hidden}.post-card:hover{transform:translateY(-4px);border-color:var(--clr-primary)}.post-card__link{display:block;padding:1.3rem}.post-card__date,.post__eyebrow{display:inline-block;margin-bottom:.9em;color:var(--clr-primary);font-weight:500}.post-card__meta{margin-top:.75em;color:var(--clr-fg-muted)}.post__back{display:inline-block;margin-bottom:1.4rem}.post__header{margin-bottom:1.2rem}.post__tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.post__tag{padding:.35rem .7rem;border:1px solid var(--clr-border);border-radius:999px;color:var(--clr-fg-muted);background:var(--clr-surface)}.post__content{display:grid;gap:1rem;color:var(--clr-fg-muted)}.post__content ul,.post__content ol{margin-left:1.5em}.post__content ul{list-style:disc}.post__content ol{list-style:decimal}.post__content a{color:var(--clr-primary)}.post__content h2,.post__content h3,.post__content h4{margin-top:.9em}.post__content hr{border-top:1px solid var(--clr-border)}.post__content blockquote{border-left:4px solid var(--clr-primary);padding-left:1em}.post__content code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background:var(--clr-code-bg);padding:.12em .36em;border-radius:.35em}.post__content pre{overflow-x:auto;padding:1em;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-sm)}.post__content pre code{padding:0;background:transparent}.post__content table{width:100%;border-collapse:collapse}.post__content th,.post__content td{border:1px solid var(--clr-border);padding:.75em;text-align:left}.not-found{display:grid;align-content:center;gap:1rem}.not-found__eyebrow{color:var(--clr-primary);font-weight:700;letter-spacing:.08em}.not-found__text{color:var(--clr-fg-muted);max-width:56ch}.not-found__actions{display:flex;flex-wrap:wrap;gap:.75rem}@media(max-width:760px){.header{width:92%;padding:.85rem 0;align-items:flex-start;flex-direction:column}.nav{width:100%}.nav__list{width:100%;gap:.7rem;justify-content:flex-start;flex-wrap:wrap;padding:.75rem .9rem;border:1px solid var(--clr-border);border-radius:var(--radius-sm);background:var(--clr-surface)}.section{margin-top:2.2rem}.projects__grid{grid-template-columns:1fr}.project,.project__description{min-height:auto}.footer{padding:1.6em;margin-top:2.4em}}
