@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--un-bg-opacity:100%;--un-border-opacity:100%;--un-leading:initial;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-space-y-reverse:initial;--un-text-opacity:100%}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-leading{syntax:"*";inherits:false}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}@property --un-scale-x{syntax:"*";inherits:false;initial-value:1}@property --un-scale-y{syntax:"*";inherits:false;initial-value:1}@property --un-scale-z{syntax:"*";inherits:false;initial-value:1}@property --un-backdrop-blur{syntax:"*";inherits:false}@property --un-backdrop-brightness{syntax:"*";inherits:false}@property --un-backdrop-contrast{syntax:"*";inherits:false}@property --un-backdrop-grayscale{syntax:"*";inherits:false}@property --un-backdrop-hue-rotate{syntax:"*";inherits:false}@property --un-backdrop-invert{syntax:"*";inherits:false}@property --un-backdrop-opacity{syntax:"*";inherits:false}@property --un-backdrop-saturate{syntax:"*";inherits:false}@property --un-backdrop-sepia{syntax:"*";inherits:false}@property --un-space-y-reverse{syntax:"*";inherits:false;initial-value:0}:root,:host{--spacing:.25rem;--container-5xl:64rem;--default-transition-timingFunction:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--container-7xl:80rem;--fontWeight-semibold:600;--container-4xl:56rem;--fontWeight-bold:700;--tracking-tight:-.025em;--container-3xl:48rem;--container-2xl:42rem;--leading-relaxed:1.625;--radius-lg:.5rem;--colors-white:#fff;--radius-md:.375rem;--fontWeight-medium:500;--text-lg-fontSize:1.125rem;--text-lg-lineHeight:1.75rem;--text-4xl-fontSize:2.25rem;--text-4xl-lineHeight:2.5rem;--text-base-fontSize:1rem;--text-base-lineHeight:1.5rem;--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--text-3xl-fontSize:1.875rem;--text-3xl-lineHeight:2.25rem;--text-6xl-fontSize:3.75rem;--text-6xl-lineHeight:1;--text-xl-fontSize:1.25rem;--text-xl-lineHeight:1.75rem;--text-5xl-fontSize:3rem;--text-5xl-lineHeight:1;--text-7xl-fontSize:4.5rem;--text-7xl-lineHeight:1;--colors-black:#000;--font-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-monoFont-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}.text-3xl{font-size:var(--text-3xl-fontSize);line-height:var(--un-leading,var(--text-3xl-lineHeight))}.text-4xl{font-size:var(--text-4xl-fontSize);line-height:var(--un-leading,var(--text-4xl-lineHeight))}.text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading,var(--text-base-lineHeight))}.text-lg{font-size:var(--text-lg-fontSize);line-height:var(--un-leading,var(--text-lg-lineHeight))}.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.text-\[color\:var\(--color-accent\)\]{color:color-mix(in oklab, var(--color-accent) var(--un-text-opacity), transparent) }.text-\[color\:var\(--color-ink-faint\)\]{color:color-mix(in oklab, var(--color-ink-faint) var(--un-text-opacity), transparent) }.text-\[color\:var\(--color-ink-muted\)\]{color:color-mix(in oklab, var(--color-ink-muted) var(--un-text-opacity), transparent) }.text-\[color\:var\(--color-ink\)\]{color:color-mix(in oklab, var(--color-ink) var(--un-text-opacity), transparent) }.hover\:text-\[color\:var\(--color-accent\)\]:hover{color:color-mix(in oklab, var(--color-accent) var(--un-text-opacity), transparent) }.hover\:text-\[color\:var\(--color-ink\)\]:hover{color:color-mix(in oklab, var(--color-ink) var(--un-text-opacity), transparent) }.leading-\[1\.02\]{--un-leading:1.02;line-height:1.02}.leading-relaxed{--un-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.tracking-tight{--un-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.font-bold{--un-font-weight:var(--fontWeight-bold);font-weight:var(--fontWeight-bold)}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold)}.-m-2{margin:calc(var(--spacing) * -2)}.m-auto{margin:auto}.m6{margin:calc(var(--spacing) * 6)}.mx-auto{margin-inline:auto}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-auto{margin-top:auto}.first\:mt-0:first-child{margin-top:calc(var(--spacing) * 0)}.mis{margin-inline-start:calc(var(--spacing) * 4)}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-4{padding-block:calc(var(--spacing) * 4)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-28{padding-top:calc(var(--spacing) * 28)}.pt-5{padding-top:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[color\:var\(--color-rule-soft\)\]{border-color:color-mix(in oklab, var(--color-rule-soft) var(--un-border-opacity), transparent) }.border-\[color\:var\(--color-rule\)\]{border-color:color-mix(in oklab, var(--color-rule) var(--un-border-opacity), transparent) }.hover\:border-\[color\:var\(--color-ink-faint\)\]:hover{border-color:color-mix(in oklab, var(--color-ink-faint) var(--un-border-opacity), transparent) }.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.backdrop\:bg-black\/80::backdrop{background-color:color-mix(in srgb, var(--colors-black) 80%, transparent) }.bg-\[color\:var\(--color-paper-2\)\]{background-color:color-mix(in oklab, var(--color-paper-2) var(--un-bg-opacity), transparent) }.bg-\[color\:var\(--color-paper-3\)\]{background-color:color-mix(in oklab, var(--color-paper-3) var(--un-bg-opacity), transparent) }.bg-\[color\:var\(--color-paper\)\]{background-color:color-mix(in oklab, var(--color-paper) var(--un-bg-opacity), transparent) }.bg-\[color\:var\(--color-paper\)\]\/85{background-color:color-mix(in oklab, var(--color-paper) 85%, transparent) }.bg-\[color\:var\(--color-paper\)\]\/95{background-color:color-mix(in oklab, var(--color-paper) 95%, transparent) }.bg-transparent{background-color:#0000}.bg-white\/5{background-color:color-mix(in srgb, var(--colors-white) 5%, transparent) }.hover\:bg-white\/10:hover{background-color:color-mix(in srgb, var(--colors-white) 10%, transparent) }.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.h-\[80vh\]{height:80vh}.h-8{height:calc(var(--spacing) * 8)}.max-h-full{max-height:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.w-8{width:calc(var(--spacing) * 8)}.w-full{width:100%}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.visible{visibility:visible}.cursor-pointer{cursor:pointer}.pointer-events-none{pointer-events:none}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shadow-2xl{--un-shadow:0 25px 50px -12px var(--un-shadow-color,#00000040);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.hover\:scale-110:hover{--un-scale-x:110%;--un-scale-y:110%;scale:var(--un-scale-x) var(--un-scale-y)}.transform{transform:var(--un-rotate-x) var(--un-rotate-y) var(--un-rotate-z) var(--un-skew-x) var(--un-skew-y)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.items-start{align-items:flex-start}.items-center{align-items:center}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.z-10{z-index:10}.z-50{z-index:50}.overflow-hidden{overflow:hidden}.object-contain{object-fit:contain}.backdrop-blur-md{--un-backdrop-blur:blur(12px);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,)}.backdrop\:backdrop-blur-sm::backdrop{--un-backdrop-blur:blur(8px);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,)}.filter{filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}.space-y-4{:where(&>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--un-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--un-space-y-reverse)))}}.space-y-5{:where(&>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--un-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--un-space-y-reverse)))}}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/80::backdrop{background-color:color-mix(in oklab, var(--colors-black) 80%, transparent) }.bg-white\/5{background-color:color-mix(in oklab, var(--colors-white) 5%, transparent) }.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--colors-white) 10%, transparent) }}@media (width>=40rem){.sm\:text-5xl{font-size:var(--text-5xl-fontSize);line-height:var(--un-leading,var(--text-5xl-lineHeight))}.sm\:text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.sm\:pl-6{padding-left:calc(var(--spacing) * 6)}}@media (width>=48rem){.md\:text-5xl{font-size:var(--text-5xl-fontSize);line-height:var(--un-leading,var(--text-5xl-lineHeight))}.md\:text-6xl{font-size:var(--text-6xl-fontSize);line-height:var(--un-leading,var(--text-6xl-lineHeight))}.md\:text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading,var(--text-base-lineHeight))}.md\:text-lg{font-size:var(--text-lg-fontSize);line-height:var(--un-leading,var(--text-lg-lineHeight))}.md\:text-xl{font-size:var(--text-xl-fontSize);line-height:var(--un-leading,var(--text-xl-lineHeight))}.md\:mx-0{margin-inline:calc(var(--spacing) * 0)}.md\:mb-0{margin-bottom:calc(var(--spacing) * 0)}.md\:mb-10{margin-bottom:calc(var(--spacing) * 10)}.md\:mb-2{margin-bottom:calc(var(--spacing) * 2)}.md\:px-12{padding-inline:calc(var(--spacing) * 12)}.md\:py-20{padding-block:calc(var(--spacing) * 20)}.md\:py-32{padding-block:calc(var(--spacing) * 32)}.md\:pb-20{padding-bottom:calc(var(--spacing) * 20)}.md\:pt-2{padding-top:calc(var(--spacing) * 2)}.md\:pt-40{padding-top:calc(var(--spacing) * 40)}.md\:text-left{text-align:left}.md\:flex-row{flex-direction:row}.md\:gap-14{gap:calc(var(--spacing) * 14)}.md\:gap-4{gap:calc(var(--spacing) * 4)}.md\:items-start{align-items:flex-start}.md\:justify-start{justify-content:flex-start}.md\:space-y-6{:where(&>:not(:last-child)){--un-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--un-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--un-space-y-reverse)))}}}@media (width>=64rem){.lg\:text-6xl{font-size:var(--text-6xl-fontSize);line-height:var(--un-leading,var(--text-6xl-lineHeight))}.lg\:px-16{padding-inline:calc(var(--spacing) * 16)}.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}.lg\:flex{display:flex}.lg\:flex-1{flex:1}.lg\:gap-x-7{column-gap:calc(var(--spacing) * 7)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:hidden{display:none}.lg\:items-center{align-items:center}}@media (width>=80rem){.xl\:text-7xl{font-size:var(--text-7xl-fontSize);line-height:var(--un-leading,var(--text-7xl-lineHeight))}}.project-card[data-astro-cid-vrvsyj6j]{border:1px solid var(--color-rule-soft);background:var(--color-paper-2);min-width:0;height:100%;transition:border-color var(--dur-fast) var(--ease-out);flex-direction:column;display:flex}.project-card[data-astro-cid-vrvsyj6j]:hover{border-color:var(--color-rule)}.project-card__link[data-astro-cid-vrvsyj6j]{color:inherit;flex-direction:column;flex-grow:1;min-width:0;text-decoration:none;display:flex}.project-card__media[data-astro-cid-vrvsyj6j]{aspect-ratio:16/9;background:var(--color-paper-3);border-bottom:1px solid var(--color-rule-soft);width:100%;margin:0;position:relative;overflow:hidden}.project-card__img[data-astro-cid-vrvsyj6j]{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease-out), filter .7s var(--ease-out);display:block}.project-card[data-astro-cid-vrvsyj6j]:hover .project-card__img[data-astro-cid-vrvsyj6j]{transform:scale(1.03)}.project-card__body[data-astro-cid-vrvsyj6j]{flex-direction:column;flex-grow:1;padding:1.375rem;display:flex}.project-card__title[data-astro-cid-vrvsyj6j]{color:var(--color-ink);transition:color var(--dur-fast) var(--ease-out);min-width:0;font-size:1.25rem;font-weight:700}.project-card[data-astro-cid-vrvsyj6j]:hover .project-card__title[data-astro-cid-vrvsyj6j]{color:var(--color-accent-strong)}.project-card__arrow[data-astro-cid-vrvsyj6j]{color:var(--color-ink-faint);transition:color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex-shrink:0;margin-top:.25rem}.project-card[data-astro-cid-vrvsyj6j]:hover .project-card__arrow[data-astro-cid-vrvsyj6j]{color:var(--color-accent);transform:translate(2px,-2px)}.project-card__desc[data-astro-cid-vrvsyj6j]{color:var(--color-ink-muted);flex-grow:1;font-size:.9375rem;line-height:1.65}.project-card__meta[data-astro-cid-vrvsyj6j]{border-top:1px solid var(--color-rule-soft);color:var(--color-ink-faint);padding:.625rem 1.375rem;font-size:.75rem}.project-card__meta-links[data-astro-cid-vrvsyj6j] a[data-astro-cid-vrvsyj6j]{color:var(--color-ink-faint);text-decoration:none}.project-card[data-astro-cid-vrvsyj6j]:hover .project-card__meta-links[data-astro-cid-vrvsyj6j] a[data-astro-cid-vrvsyj6j]{color:var(--color-accent)}.status-dot[data-astro-cid-fcdezi6h]{width:.5rem;height:.5rem;animation:status-pulse 2.4s var(--ease-out) infinite;background:oklch(72% .19 145);border-radius:9999px;box-shadow:0 0 oklch(72% .19 145/.5)}@keyframes status-pulse{0%{box-shadow:0 0 oklch(72% .19 145/.5)}70%{box-shadow:0 0 0 6px oklch(72% .19 145/0)}to{box-shadow:0 0 oklch(72% .19 145/0)}}.heart[data-astro-cid-fcdezi6h]{color:var(--color-accent);animation:heart-beat 1.8s var(--ease-out) infinite;display:inline-block}@keyframes heart-beat{0%,to{transform:scale(1)}12%{transform:scale(1.25)}24%{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.status-dot[data-astro-cid-fcdezi6h],.heart[data-astro-cid-fcdezi6h]{animation:none}.status-dot[data-astro-cid-fcdezi6h]{box-shadow:0 0 0 2px oklch(72% .19 145/.4)}}.text-faint[data-astro-cid-bp6l7boz]{color:var(--color-ink-faint)}.text-muted-ink[data-astro-cid-bp6l7boz]{color:var(--color-ink-muted)}.text-ink[data-astro-cid-bp6l7boz]{color:var(--color-ink)}.text-accent[data-astro-cid-bp6l7boz]{color:var(--color-accent)}.hero-avatar[data-astro-cid-bp6l7boz]{width:6rem}.avatar-frame[data-astro-cid-bp6l7boz]{border-radius:9999px;width:100%;overflow:hidden}.avatar-frame__img[data-astro-cid-bp6l7boz]{object-fit:cover;aspect-ratio:1;border-radius:9999px;width:100%;height:100%;display:block}@media (width>=768px){.hero-avatar[data-astro-cid-bp6l7boz]{width:12rem}}.text-faint[data-astro-cid-uid5rzem]{color:var(--color-ink-faint)}.text-accent[data-astro-cid-uid5rzem]{color:var(--color-accent)}.text-ink-soft[data-astro-cid-uid5rzem]{color:oklch(86% .01 285)}.terminal-window[data-astro-cid-uid5rzem]{background:var(--color-paper-2);border:1px solid var(--color-rule-soft)}.terminal-window__bar[data-astro-cid-uid5rzem]{border-bottom:1px solid var(--color-rule-soft);background:var(--color-paper-3);padding:.625rem 1rem}.terminal-window__title[data-astro-cid-uid5rzem]{color:var(--color-ink-faint);font-size:.75rem}.terminal-window__body[data-astro-cid-uid5rzem]{color:var(--color-ink-muted);padding:1.5rem;line-height:1.8;overflow-x:auto}.text-muted-ink[data-astro-cid-z2nn4gl2]{color:var(--color-ink-muted)}.cert-row[data-astro-cid-sdxxelqv]{border-bottom:1px solid oklch(20% .014 285);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:1.125rem 1.25rem;display:flex}.cert-row[data-astro-cid-sdxxelqv]:last-child{border-bottom:none}.cert-row__main[data-astro-cid-sdxxelqv]{min-width:0}.cert-row__name[data-astro-cid-sdxxelqv]{font-family:var(--font-display);color:var(--color-ink);transition:color var(--dur-fast) var(--ease-out);min-width:0;font-size:1.0625rem;font-weight:600}.cert-row[data-astro-cid-sdxxelqv]:hover .cert-row__name[data-astro-cid-sdxxelqv]{color:var(--color-accent-strong)}.cert-row__meta[data-astro-cid-sdxxelqv]{color:var(--color-ink-faint);margin-top:.25rem;font-size:.8125rem}.cert-row__sep[data-astro-cid-sdxxelqv]{margin:0 .25rem}.cert-row__open[data-astro-cid-sdxxelqv]{color:var(--color-accent);cursor:pointer;white-space:nowrap;background:0 0;background-image:linear-gradient(var(--color-accent), var(--color-accent));transition:background-size var(--dur-med) var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;border:1px solid #0000;align-items:center;gap:.5rem;padding:.375rem 0;font-size:.8125rem;display:inline-flex}.cert-row__open[data-astro-cid-sdxxelqv]:hover{background-size:100% 1px}.cert-row__open[data-astro-cid-sdxxelqv]:active{transform:translateY(1px)}.cert-list[data-astro-cid-kv6are7t]{border:1px solid var(--color-rule-soft);background:var(--color-paper-2)}.cert-list__header[data-astro-cid-kv6are7t]{border-bottom:1px solid var(--color-rule-soft);background:var(--color-paper-3);color:var(--color-ink-faint);margin:0;padding:.625rem 1.25rem}.cert-list__path[data-astro-cid-kv6are7t]{color:var(--color-ink-faint)}.cert-list__body[data-astro-cid-kv6are7t]{flex-direction:column;display:flex}.bg-grid[data-astro-cid-7zpky2qz]{background-image:linear-gradient(oklch(100% 0 0/.015) 1px,#0000 1px),linear-gradient(90deg,oklch(100% 0 0/.015) 1px,#0000 1px);background-size:60px 60px;mask-image:linear-gradient(#000 0%,#0000 70%)}.mono[data-astro-cid-wt46dpi5]{font-family:var(--font-mono)}.nav-wordmark[data-astro-cid-wt46dpi5]{color:var(--color-ink);transition:color var(--dur-fast) var(--ease-out);text-decoration:none}.nav-wordmark[data-astro-cid-wt46dpi5]:hover{color:var(--color-accent-strong)}.nav-link[data-astro-cid-wt46dpi5]{font-family:var(--font-mono);color:var(--color-ink-muted);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out);align-items:center;gap:.5rem;padding:.25rem 0;font-size:.875rem;text-decoration:none;display:inline-flex;position:relative}.nav-link[data-astro-cid-wt46dpi5]:after{content:"";background:var(--color-accent);transform-origin:100%;width:100%;height:1px;transition:transform var(--dur-med) var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-link[data-astro-cid-wt46dpi5]:hover{color:var(--color-ink)}.nav-link[data-astro-cid-wt46dpi5]:hover:after{transform-origin:0;transform:scaleX(1)}.nav-link__dot[data-astro-cid-wt46dpi5]{background:var(--color-accent);opacity:0;width:5px;height:5px;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);transform:scale(0)}.nav-link[data-astro-cid-wt46dpi5].is-active{color:var(--color-ink)}.nav-link[data-astro-cid-wt46dpi5].is-active .nav-link__dot[data-astro-cid-wt46dpi5]{opacity:1;transform:scale(1)}.nav-sep[data-astro-cid-wt46dpi5]{background:var(--color-rule);width:1px;height:1.25rem}.menu-bar[data-astro-cid-wt46dpi5]{background:var(--color-ink-muted);width:1.5rem;height:2px;transition:transform var(--dur-med) var(--ease-out), opacity var(--dur-fast) var(--ease-out);display:block}.group[data-astro-cid-wt46dpi5].open .menu-bar[data-astro-cid-wt46dpi5]:first-child{transform:translateY(8px)rotate(45deg)}.group[data-astro-cid-wt46dpi5].open .menu-bar[data-astro-cid-wt46dpi5]:nth-child(2){opacity:0}.group[data-astro-cid-wt46dpi5].open .menu-bar[data-astro-cid-wt46dpi5]:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.mobile-link[data-astro-cid-wt46dpi5]{font-family:var(--font-mono);color:var(--color-ink-muted);transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);border-bottom:1px solid oklch(20% .014 285);align-items:center;gap:.5rem;padding:1rem 1.5rem;font-size:.875rem;text-decoration:none;display:flex}.mobile-link[data-astro-cid-wt46dpi5]:hover{color:var(--color-accent);background:var(--color-accent-wash)}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-grotesk-latin-400-normal.CJ-V5oYT.woff2)format("woff2"),url(/_astro/space-grotesk-latin-400-normal.BnQMeOim.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2)format("woff2"),url(/_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2)format("woff2"),url(/_astro/space-grotesk-latin-600-normal.BflQw4A9.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-grotesk-latin-700-normal.RjhwGPKo.woff2)format("woff2"),url(/_astro/space-grotesk-latin-700-normal.CwsQ-cCU.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff)format("woff")}:root{--color-paper:oklch(13% .012 285);--color-paper-2:oklch(16.5% .014 285);--color-paper-3:oklch(21% .016 285);--color-ink:oklch(95% .005 285);--color-ink-muted:oklch(72% .012 285);--color-ink-faint:oklch(63% .014 285);--color-rule:oklch(28% .016 285);--color-rule-soft:oklch(24% .014 285);--color-accent:oklch(66% .22 285);--color-accent-strong:oklch(72% .2 285);--color-accent-dim:oklch(66% .22 285/.35);--color-accent-wash:oklch(66% .22 285/.08);--font-display:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-body:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.15s;--dur-med:.3s}@layer base{html{scroll-behavior:smooth}html,body{overflow-x:clip}body{background-color:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65}::selection{color:var(--color-ink);background:oklch(66% .22 285/.35)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}h1,h2,h3,h4{font-family:var(--font-display);overflow-wrap:anywhere;min-width:0;font-style:normal}}.mono{font-family:var(--font-mono)}.t-prompt{font-family:var(--font-mono);color:var(--color-accent)}.t-path{font-family:var(--font-mono);color:var(--color-ink-faint)}.section-path{font-family:var(--font-mono);letter-spacing:.02em;color:var(--color-ink-faint);align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.8125rem;display:flex}.section-path:after{content:"";background:var(--color-rule-soft);flex:1;height:1px}.btn-solid{font-family:var(--font-mono);background:var(--color-accent);color:oklch(13% .012 285);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.75rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-solid:hover{background:var(--color-accent-strong)}.btn-solid:active{transform:translateY(1px)}.btn-outline{font-family:var(--font-mono);border:1px solid var(--color-rule);color:var(--color-ink);white-space:nowrap;transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1.75rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn-outline:hover{border-color:var(--color-ink-faint);background:var(--color-paper-2)}.btn-outline:active{transform:translateY(1px)}.tag{font-family:var(--font-mono);color:var(--color-ink-muted);background:var(--color-paper-2);border:1px solid var(--color-rule-soft);white-space:nowrap;padding:.25rem .625rem;font-size:.75rem}.skip-link{z-index:100;font-family:var(--font-mono);background:var(--color-accent);color:oklch(13% .012 285);transition:transform var(--dur-fast) var(--ease-out);z-index:100;white-space:nowrap;padding:.75rem 1.25rem;font-size:.875rem;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.xp-bar{z-index:60;transform-origin:0;background:linear-gradient(90deg, var(--color-accent), var(--color-accent-strong));width:100%;height:2px;position:fixed;top:0;left:0;transform:scaleX(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.xp-bar{transform:scaleX(0)}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html,body{width:100%;height:100%;margin:0}
