:root{--comment: rgb(107, 164, 85);--label: rgb(166, 113, 189);--local-variable: rgb(145, 207, 250);--global-variable: rgb(102, 208, 210);--preprocessor: rgb(255, 200, 255);--macro: rgb(189, 183, 250);--enum-member: rgb(190, 214, 168);--namespace: rgb(181, 221, 204);--template-parameter: rgb(137, 219, 172);--function-parameter: rgb(154, 154, 154);--class-type-templated: rgb(113, 198, 177);--class-type: rgb(137, 219, 172);--control-keyword: rgb(200, 146, 214);--keyword: rgb(103, 154, 209);--operator: rgb(150, 197, 219);--operator-overloaded: rgb(246, 202, 252);--field: rgb(196, 207, 242);--static-field: rgb(212, 175, 55);--function: rgb(211, 211, 157);--function-templated: rgb(221, 221, 174);--static-method: rgb(171, 239, 167);--string: rgb(175, 219, 159);--integer-literal: rgb(186, 205, 171);--plain-text: rgb(160, 222, 255)}.comment{color:var(--comment)}.label{color:var(--label)}.local-variable{color:var(--local-variable)}.global-variable{color:var(--global-variable)}.preprocessor{color:var(--preprocessor);font-weight:700;font-style:italic}.macro{color:var(--macro)}.enum-member{color:var(--enum-member)}.namespace{color:var(--namespace)}.template-parameter{color:var(--template-parameter)}.function-parameter{color:var(--function-parameter)}.class-type-templated{color:var(--class-type-templated)}.class-type{color:var(--class-type)}.control-keyword{color:var(--control-keyword);font-weight:700;font-style:italic}.keyword{color:var(--keyword);font-weight:700;font-style:italic}.operator{color:var(--operator)}.operator-overloaded{color:var(--operator-overloaded)}.field{color:var(--field)}.static-field{color:var(--static-field)}.function{color:var(--function)}.function-templated{color:var(--function-templated)}.static-method{color:var(--static-method)}.string{color:var(--string)}.integer-literal{color:var(--integer-literal)}.plain-text{color:var(--plain-text)}.haze-images{display:flex;justify-content:center;gap:var(--half-padding);width:100%}.haze-images figure{margin:0}.haze-images figure code pre{aspect-ratio:1 / 1}.haze-images figure img{margin:0;padding:0;width:100%}code{text-align:left}code pre,code span,code i{font-family:Consolas,monospace;font-style:normal;font-weight:400;color:var(--dark-foreground)}code pre{text-wrap:wrap;padding:10px;background:var(--dark-background-d);color:var(--plain-text);border:1px solid var(--background-l);border-radius:10px}.single-image{width:50%;margin-inline:auto}.single-image img{width:100%}@media only screen and (max-width: 480px){.single-image{width:100%}}.custom-code{flex-wrap:wrap;gap:var(--half-padding)}.custom-code figure{flex:1;min-width:200px}.wrap-children{display:flex;flex-wrap:wrap;gap:var(--half-padding)}.wrap-children div{flex:1}.portfolio-cards{display:flex;flex-direction:column;gap:var(--half-padding)}details.project-card{overflow:clip;background:var(--background);border-radius:10px;border:1px solid var(--background-l);transition:border-color .16s ease}details.project-card>summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;display:block;position:relative;background-color:transparent;transition:background-color .16s ease}details.project-card>summary:focus-visible{outline:2px solid var(--accent-selected);outline-offset:2px}details.project-card:not([open])>summary{transition:background-color .1s ease-in-out}details.project-card:not([open])>summary:hover{background-color:color-mix(in srgb,var(--background-l) 55%,transparent)}details.project-card>summary:after{content:"";position:absolute;right:var(--half-padding);top:50%;width:.55rem;height:.55rem;border-right:2px solid color-mix(in srgb,var(--foreground) 60%,transparent);border-bottom:2px solid color-mix(in srgb,var(--foreground) 60%,transparent);transform:translateY(-50%) rotate(45deg);opacity:.8;transition:transform .16s ease,opacity .16s ease,border-color .16s ease}details.project-card>summary::-webkit-details-marker{display:none}details.project-card>summary::marker{content:""}.project-card__summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--half-padding);padding:var(--half-padding);padding-right:calc(var(--half-padding) + 1.25rem)}.project-card__icon{width:56px;height:56px;display:grid;place-items:center}.project-card__text{display:flex;flex-direction:column;gap:.25rem;min-width:0}.project-card__title{margin:0;font-size:1.35rem}.project-card__desc{margin:0;opacity:.85}.project-card__badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem;align-items:center}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .55rem;border-radius:999px;border:1px solid var(--background-l);background:color-mix(in srgb,var(--background-e) 70%,transparent);font-size:.8rem;font-weight:600;letter-spacing:.2px;white-space:nowrap}.badge--unknown{background:color-mix(in srgb,var(--background-e) 85%,transparent);border-color:var(--background-l)}.badge--c{background:color-mix(in srgb,#A8B9CC 35%,var(--background-e));border-color:color-mix(in srgb,#A8B9CC 65%,var(--background-l))}.badge--cpp{background:color-mix(in srgb,#00599C 30%,var(--background-e));border-color:color-mix(in srgb,#00599C 60%,var(--background-l))}.badge--csharp{background:color-mix(in srgb,#512BD4 30%,var(--background-e));border-color:color-mix(in srgb,#512BD4 60%,var(--background-l))}.badge--rust{background:color-mix(in srgb,#DEA584 30%,var(--background-e));border-color:color-mix(in srgb,#DEA584 60%,var(--background-l))}.badge--js{background:color-mix(in srgb,#F7DF1E 30%,var(--background-e));border-color:color-mix(in srgb,#F7DF1E 60%,var(--background-l))}.badge--ts{background:color-mix(in srgb,#3178C6 30%,var(--background-e));border-color:color-mix(in srgb,#3178C6 60%,var(--background-l))}.badge--python{background:color-mix(in srgb,#3776AB 30%,var(--background-e));border-color:color-mix(in srgb,#3776AB 60%,var(--background-l))}.badge--html{background:color-mix(in srgb,#E34F26 30%,var(--background-e));border-color:color-mix(in srgb,#E34F26 60%,var(--background-l))}.badge--css{background:color-mix(in srgb,#663399 30%,var(--background-e));border-color:color-mix(in srgb,#663399 60%,var(--background-l))}.badge--opengl{background:color-mix(in srgb,#65C3CB 28%,var(--background-e));border-color:color-mix(in srgb,#65C3CB 55%,var(--background-l))}.badge--mqtt{background:color-mix(in srgb,#8F84D7 28%,var(--background-e));border-color:color-mix(in srgb,#8F84D7 55%,var(--background-l))}.badge--wpf{background:color-mix(in srgb,#0C8CE9 25%,var(--background-e));border-color:color-mix(in srgb,#0C8CE9 55%,var(--background-l))}.badge--winui{background:color-mix(in srgb,#9a0cd3cc 25%,var(--background-e));border-color:color-mix(in srgb,#6d06adc6 55%,var(--background-l))}.badge--websockets{background:color-mix(in srgb,#E535AB 25%,var(--background-e));border-color:color-mix(in srgb,#E535AB 55%,var(--background-l))}.badge--verilog{background:color-mix(in srgb,#F2A900 25%,var(--background-e));border-color:color-mix(in srgb,#F2A900 55%,var(--background-l))}.badge--swift{background:color-mix(in srgb,#FA7343 25%,var(--background-e));border-color:color-mix(in srgb,#FA7343 55%,var(--background-l))}.badge--swiftui{background:color-mix(in srgb,#4AC5F8 25%,var(--background-e));border-color:color-mix(in srgb,#4AC5F8 55%,var(--background-l))}.badge--udp{background:color-mix(in srgb,#FFAA00 25%,var(--background-e));border-color:color-mix(in srgb,#FFAA00 55%,var(--background-l))}.badge--svelte{background:color-mix(in srgb,#FF3E00 25%,var(--background-e));border-color:color-mix(in srgb,#FF3E00 55%,var(--background-l))}.badge--vhdl{background:color-mix(in srgb,#8C1AFF 25%,var(--background-e));border-color:color-mix(in srgb,#8C1AFF 55%,var(--background-l))}.badge--julia{background:color-mix(in srgb,#9558B2 25%,var(--background-e));border-color:color-mix(in srgb,#9558B2 55%,var(--background-l))}.badge--yacc{background:color-mix(in srgb,#0E5013 25%,var(--background-e));border-color:color-mix(in srgb,#0D4812 55%,var(--background-l))}.badge--glsl{background:color-mix(in srgb,#5686A5 25%,var(--background-e));border-color:color-mix(in srgb,#5686A5 55%,var(--background-l))}.badge--asmriscv{background:color-mix(in srgb,#6E4C1E 25%,var(--background-e));border-color:color-mix(in srgb,#6E4C1E 55%,var(--background-l))}.badge--asmx86{background:color-mix(in srgb,#c0a386 25%,var(--background-e));border-color:color-mix(in srgb,#85694d 55%,var(--background-l))}.badge--lsp{background:color-mix(in srgb,#56B6C2 25%,var(--background-e));border-color:color-mix(in srgb,#56B6C2 55%,var(--background-l))}.badge--dap{background:color-mix(in srgb,#FF5733 25%,var(--background-e));border-color:color-mix(in srgb,#FF5733 55%,var(--background-l))}.badge--lsif{background:color-mix(in srgb,#33FF57 25%,var(--background-e));border-color:color-mix(in srgb,#33FF57 55%,var(--background-l))}.project-card__media{width:180px;height:72px;border-radius:.5rem;overflow:hidden;background:var(--background-l);border:1px solid var(--background-l)}.project-card__media img{width:100%;height:100%;object-fit:cover;display:block}.project-card__body{padding:var(--half-padding);border-top:1px solid var(--background-l)}details.project-card[open]>summary{background-color:var(--background-l)}details.project-card[open]>summary:after{transform:translateY(-50%) rotate(-135deg);opacity:.95;border-right-color:var(--foreground);border-bottom-color:var(--foreground)}details.project-card>summary:hover:after{opacity:1;border-right-color:var(--foreground);border-bottom-color:var(--foreground)}@media (prefers-reduced-motion: reduce){details.project-card,details.project-card>summary,details.project-card>summary:after{transition:none}}@media only screen and (max-width: 768px){.project-card__summary{grid-template-columns:auto 1fr;grid-template-rows:auto auto}.project-card__media{grid-column:1 / -1;width:100%;height:120px}}@media only screen and (max-width: 480px){.project-card__icon{width:48px;height:48px}}
