@layer properties{@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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-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-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:#ff6568;--spacing:.25rem;--container-xl:36rem;--container-6xl:72rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-400:lab(63.7053% 60.745 31.3109)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,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{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::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:currentColor}@supports (color:color-mix(in lab, red, red)){::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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-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]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.sticky{position:sticky}.z-50{z-index:50}.mx-auto{margin-inline:auto}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-10{height:calc(var(--spacing) * 10)}.min-h-screen{min-height:100vh}.w-3\.5{width:calc(var(--spacing) * 3.5)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-full{max-width:100%}.max-w-xl{max-width:var(--container-xl)}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-7{padding-inline:calc(var(--spacing) * 7)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-14{padding-bottom:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[15px\]{font-size:15px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-red-400{color:var(--color-red-400)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media (min-width:481px){.min-\[481px\]\:flex{display:flex}.min-\[481px\]\:hidden{display:none}}@media (min-width:40rem){.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}.sm\:py-12{padding-block:calc(var(--spacing) * 12)}}@media (min-width:48rem){.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:px-9{padding-inline:calc(var(--spacing) * 9)}.md\:text-left{text-align:left}}@media (min-width:64rem){.lg\:px-10{padding-inline:calc(var(--spacing) * 10)}}}@font-face{font-family:Space Grotesk;font-style:normal;font-display:fallback;font-weight:400;src:url(../media/space-grotesk-latin-400-normal.0nlbkvxqdexvu.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:fallback;font-weight:500;src:url(../media/space-grotesk-latin-500-normal.31yp0bkv7z4ku.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:fallback;font-weight:600;src:url(../media/space-grotesk-latin-600-normal.31umv2m7yy2ah.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:fallback;font-weight:700;src:url(../media/space-grotesk-latin-700-normal.2lryt7vlpdgap.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:fallback;font-weight:400;src:url(../media/ibm-plex-sans-latin-400-normal.1-h52z97c7bce.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:fallback;font-weight:500;src:url(../media/ibm-plex-sans-latin-500-normal.2broe1i9movoa.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:fallback;font-weight:600;src:url(../media/ibm-plex-sans-latin-600-normal.11xxlm8n0_7w8.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:fallback;font-weight:700;src:url(../media/ibm-plex-sans-latin-700-normal.0opy23tsy2xx8.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:fallback;font-weight:400;src:url(../media/ibm-plex-mono-latin-400-normal.19gbeb610ur4n.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:fallback;font-weight:500;src:url(../media/ibm-plex-mono-latin-500-normal.25_05y-blbp24.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:fallback;font-weight:600;src:url(../media/ibm-plex-mono-latin-600-normal.04jv21_rdbjv3.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:fallback;font-weight:700;src:url(../media/ibm-plex-mono-latin-700-normal.4297h2yzxl-t8.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-rgb:254 254 255;--surface-rgb:255 255 255;--text-rgb:18 24 35;--accent-rgb:72 128 235;--ambient-accent-rgb:72 128 235;--bg:rgb(var(--bg-rgb));--surface:rgb(var(--surface-rgb));--text:rgb(var(--text-rgb));--accent:rgb(var(--accent-rgb));--font-heading:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--type-brand-size:1.55rem;--type-brand-line-height:1.05;--type-brand-tracking:-.06em;--type-page-title-size:1.875rem;--type-page-title-line-height:1.16;--type-page-title-tracking:-.032em}html{overflow-x:clip}body{background-color:var(--bg);background-image:linear-gradient(180deg, rgb(var(--ambient-accent-rgb) / .05), transparent 24%);color:var(--text);font-family:var(--font-body);font-synthesis:style;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-repeat:no-repeat;margin:0;transition:background-color .18s,color .18s;overflow-x:clip}h1,h2,h3,h4,h5,h6,.nav-font,.mobile-dropdown-link,.navbar-contact-cta,.type-brand,.type-page-title,.type-section-title,.type-article-title,.type-item-title-lg,.type-item-title-md{font-family:var(--font-heading)}.type-brand{font-size:var(--type-brand-size);line-height:var(--type-brand-line-height);letter-spacing:var(--type-brand-tracking);font-weight:800}.type-page-title{font-size:var(--type-page-title-size);line-height:var(--type-page-title-line-height);letter-spacing:var(--type-page-title-tracking);font-weight:800}.type-section-title{letter-spacing:-.05em;font-size:1.5rem;font-weight:800}.type-article-title{letter-spacing:-.028em;font-size:1.58rem;font-weight:800;line-height:1.17}.type-item-title-lg{letter-spacing:-.02em;font-size:1.24rem;font-weight:700;line-height:1.2}.type-item-title-md{letter-spacing:-.025em;font-size:1.14rem;font-weight:700;line-height:1.2}.type-date{font-family:var(--font-mono);font-size:14px;line-height:1.5}.type-meta{font-family:var(--font-mono);letter-spacing:.03em;font-size:12px;font-weight:600}.type-meta-wide{font-family:var(--font-mono);letter-spacing:.08em;font-size:12px;font-weight:600}.type-body{font-size:14px;line-height:1.75}.type-body-lg{font-size:15px;line-height:1.75}.type-body-compact{font-size:13px;line-height:1.5}.type-data,kbd,code,pre,samp,.latest-project-tag,.latest-blog-index,.latest-blog-tag,.project-chip,.project-meta-item,.project-meta-pill,.project-filter-label,.project-category-badge,.project-card-category-badge,.project-card-meta,.suggested-article-date,.filter-summary,.filter-item{font-family:var(--font-mono)}@media (min-width:640px){:root{--type-brand-size:1.8rem;--type-page-title-size:2.125rem}.type-section-title{font-size:1.72rem}.type-article-title{font-size:1.86rem}.type-item-title-lg{font-size:1.5rem}.type-item-title-md{font-size:1.28rem}.type-date{font-size:15px}.type-meta,.type-meta-wide{font-size:13px}.type-body{font-size:15px}.type-body-lg{font-size:16px}.type-body-compact{font-size:14px}}@media (min-width:768px){.type-article-title{font-size:2.12rem}.type-item-title-md{font-size:1.34rem}}@media (min-width:1024px){:root{--type-page-title-size:2.375rem}.type-article-title{font-size:2.2rem}}a{color:inherit;text-decoration:none;transition:color .16s}*{box-sizing:border-box}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.bg-white{background-color:var(--surface)!important}[class~=bg-white\/88]{background-color:rgb(var(--surface-rgb) / .88)!important}[class~="bg-black/[0.015]"]{background-color:rgb(var(--text-rgb) / .015)!important}[class~="bg-black/[0.02]"]{background-color:rgb(var(--text-rgb) / .02)!important}[class~="bg-black/[0.04]"]{background-color:rgb(var(--text-rgb) / .04)!important}[class~=bg-black\/10]{background-color:rgb(var(--text-rgb) / .1)!important}.text-black{color:rgb(var(--text-rgb))!important}[class~=text-black\/35]{color:rgb(var(--text-rgb) / .35)!important}[class~=text-black\/40]{color:rgb(var(--text-rgb) / .4)!important}[class~=text-black\/42]{color:rgb(var(--text-rgb) / .42)!important}[class~=text-black\/44]{color:rgb(var(--text-rgb) / .44)!important}[class~=text-black\/45]{color:rgb(var(--text-rgb) / .45)!important}[class~=text-black\/46]{color:rgb(var(--text-rgb) / .46)!important}[class~=text-black\/48]{color:rgb(var(--text-rgb) / .48)!important}[class~=text-black\/50]{color:rgb(var(--text-rgb) / .5)!important}[class~=text-black\/52]{color:rgb(var(--text-rgb) / .52)!important}[class~=text-black\/55]{color:rgb(var(--text-rgb) / .55)!important}[class~=text-black\/56]{color:rgb(var(--text-rgb) / .56)!important}[class~=text-black\/58]{color:rgb(var(--text-rgb) / .58)!important}[class~=text-black\/60]{color:rgb(var(--text-rgb) / .6)!important}[class~=text-black\/68]{color:rgb(var(--text-rgb) / .68)!important}[class~=text-black\/70]{color:rgb(var(--text-rgb) / .7)!important}[class~=text-black\/72]{color:rgb(var(--text-rgb) / .72)!important}[class~=text-black\/75]{color:rgb(var(--text-rgb) / .75)!important}[class~=text-black\/78]{color:rgb(var(--text-rgb) / .78)!important}[class~=text-black\/88]{color:rgb(var(--text-rgb) / .88)!important}[class~=text-black\/92]{color:rgb(var(--text-rgb) / .92)!important}.border-black{border-color:rgb(var(--text-rgb))!important}[class~=border-black\/8]{border-color:rgb(var(--text-rgb) / .08)!important}[class~=border-black\/10]{border-color:rgb(var(--text-rgb) / .1)!important}[class~=border-black\/12]{border-color:rgb(var(--text-rgb) / .12)!important}[class~="hover:border-black/20"]:hover{border-color:rgb(var(--text-rgb) / .2)!important}[class~="hover:border-black/25"]:hover{border-color:rgb(var(--text-rgb) / .25)!important}[class~=hover\:text-black]:hover{color:rgb(var(--text-rgb))!important}[class~="hover:bg-black/[0.03]"]:hover{background-color:rgb(var(--text-rgb) / .03)!important}[class~="hover:bg-black/[0.035]"]:hover{background-color:rgb(var(--text-rgb) / .035)!important}[class~="hover:bg-black/[0.04]"]:hover{background-color:rgb(var(--text-rgb) / .04)!important}[class~="placeholder:text-black/35"]::placeholder{color:rgb(var(--text-rgb) / .35)!important}[class~="placeholder:text-black/38"]::placeholder{color:rgb(var(--text-rgb) / .38)!important}[class~="focus:border-black/20"]:focus{border-color:rgb(var(--accent-rgb) / .68)!important}[class~="focus-visible:ring-black/15"]:focus-visible{--tw-ring-color:rgb(var(--accent-rgb) / .3)!important}[class~=divide-black\/10]>:not([hidden])~:not([hidden]){border-color:rgb(var(--text-rgb) / .1)!important}.brand-mark{background-color:rgb(var(--accent-rgb) / .13);color:rgb(var(--accent-rgb));border-color:rgb(var(--accent-rgb) / .42)!important}.nav-link-active,.nav-link-hover-accent:hover{border-color:rgb(var(--accent-rgb) / .7)!important;color:rgb(var(--accent-rgb))!important}.nav-link-active-text,.nav-link-hover-accent-text:hover{color:rgb(var(--accent-rgb))!important}p[class*="tracking-[0.24em]"][class*=uppercase][class*=text-black\/35]{color:rgb(var(--accent-rgb) / .7)!important}[class~="bg-black/[0.04]"][class~=uppercase]{transition:background-color .16s,color .16s;background-color:rgb(var(--accent-rgb) / .12)!important;color:rgb(var(--accent-rgb) / .85)!important}[class~="bg-black/[0.04]"][class~=uppercase]:hover{background-color:rgb(var(--accent-rgb) / .2)!important;color:rgb(var(--accent-rgb) / .96)!important}a[class*=text-black\/45][class*=hover\:text-black]:hover,a[class*=text-black\/72][class*=hover\:text-black]:hover{color:rgb(var(--accent-rgb))!important}.primary-cta{box-shadow:0 10px 28px -24px rgb(var(--accent-rgb) / .95);border-color:rgb(var(--accent-rgb) / .42)!important;background-color:rgb(var(--accent-rgb) / .14)!important;color:rgb(var(--accent-rgb))!important}.primary-cta:hover{box-shadow:0 18px 36px -24px rgb(var(--accent-rgb) / .56);border-color:rgb(var(--accent-rgb) / .62)!important;background-color:rgb(var(--accent-rgb) / .23)!important;color:rgb(var(--accent-rgb))!important}::selection{background:rgb(var(--accent-rgb) / .28)}:root{--card-border:rgb(var(--text-rgb) / .1);--muted:rgb(var(--text-rgb) / .55)}button{cursor:pointer}.site-header{--nav-h:3.5rem;height:var(--nav-h);background:0 0;top:.75rem}.navbar-shell{width:calc(100% - 3.5rem);color:rgb(var(--text-rgb) / .9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff6;border:1px solid #00000040;border-radius:28px;margin-inline:auto;padding-inline:.5rem;position:relative;box-shadow:inset 0 4px 6px #ffffff40}.navbar-inner{height:calc(var(--nav-h) - 2px)}.navbar-avatar-link,.navbar-avatar-link img{border-radius:50%;flex:none;width:2.5rem;height:2.5rem}.navbar-avatar-link{transition:transform .18s}.navbar-avatar-link img{object-fit:cover}.navbar-nav-link{border:1px solid #0000;border-radius:20px;padding:.5625rem .625rem;line-height:1.25;transition:border-color .18s,background-color .18s;position:relative}.navbar-nav-link:hover,.navbar-nav-link-active,.navbar-nav-link:focus-visible{background:#ffffff2e;border-color:#000000a6;outline:none}.navbar-menu-button{color:rgb(var(--text-rgb) / .9);background:#fff;border:1px solid #00000040}.navbar-contact-cta{color:#fff;background:#3e86ff;border:0;border-radius:20px;margin-left:1rem;transition:transform .18s}@media (hover:hover) and (pointer:fine){.navbar-avatar-link:hover{transform:scale(1.08)}.navbar-contact-cta:hover{transform:translateY(-2px)}}@media (max-width:480px){.site-header{top:1rem}.navbar-shell{width:100%;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding-inline:1.25rem}.navbar-inner{z-index:2;justify-content:space-between;height:2.875rem;position:relative}.navbar-mobile-home{-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);background:#ffffffd6;border:1px solid #fffc;border-radius:50%;flex:none;width:2.875rem;height:2.875rem;padding:.1875rem;transition:transform .18s;box-shadow:0 12px 30px -16px #051123a6,inset 0 1px #ffffffe6}.navbar-mobile-home img{object-fit:cover;border-radius:50%;width:100%;height:100%}.navbar-mobile-home:active{transform:scale(.95)}.navbar-mobile-home:focus-visible{outline-offset:3px;outline:2px solid #3e86ff}.navbar-menu-button{color:#173f7a;-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);background:#ffffffd6;border-color:#fffc;border-radius:999px;flex:none;gap:.625rem;width:auto;min-width:6.625rem;height:2.875rem;padding:.3125rem .375rem .3125rem .875rem;transition:transform .18s,background-color .18s,box-shadow .18s;box-shadow:0 12px 30px -16px #051123a6,inset 0 1px #ffffffe6}.navbar-menu-button:active{transform:scale(.97)}.navbar-menu-button:focus-visible{outline-offset:3px;outline:2px solid #3e86ff}.navbar-menu-label{letter-spacing:.01em;text-align:center;min-width:2.75rem;font-size:.8125rem;font-weight:650;line-height:1}.navbar-menu-icon{color:#fff;background:#3e86ff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:2rem;height:2rem;transition:background-color .18s,transform .22s;display:inline-flex}.navbar-menu-button-open .navbar-menu-icon{background:#173f7a;transform:rotate(90deg)}.mobile-navbar-panel{z-index:1;overscroll-behavior:contain;visibility:hidden;pointer-events:none;contain:paint;will-change:transform;background:#3e86ff;height:100dvh;transition:transform .38s cubic-bezier(.76,0,.24,1),visibility 0s linear .38s;position:fixed;inset:0;overflow-y:auto;transform:translateY(-100%)}.mobile-navbar-panel-open{visibility:visible;pointer-events:auto;transition-delay:0s;transform:translate(0)}.mobile-navbar-panel-inner{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:100%;padding:5.5rem 2rem 3rem;display:flex}.mobile-dropdown-link{color:#fffffff2;border-radius:0;justify-content:center;align-items:flex-start;gap:.45rem;width:auto;min-height:auto;padding:.5rem 0;font-weight:400;display:inline-flex}.mobile-dropdown-link:hover,.mobile-dropdown-link-active{color:#fff;background:0 0}.mobile-dropdown-link:focus-visible{outline-offset:.3rem;outline:2px solid #fff}.mobile-nav-index{color:#ffffff8c;width:auto;font-family:var(--font-mono);flex:none;margin-top:.42rem;font-size:.75rem;font-weight:600;line-height:1}.mobile-nav-label{letter-spacing:-.045em;font-family:Georgia,serif;font-size:clamp(2.8rem,13vw,3.2rem);line-height:1.1}}@media (min-width:481px){.site-header{height:auto;top:1.5rem}.navbar-shell{width:fit-content;max-width:calc(100% - 3.5rem)}.navbar-primary{margin-left:3.84rem}}.footer-shell{color:#ffffffeb;-webkit-backdrop-filter:blur(16px)saturate(1.6);backdrop-filter:blur(16px)saturate(1.6);background:#3e86ffd1;border:1px solid #ffffff94;border-radius:20px;position:relative;overflow:hidden;box-shadow:0 13px 34px -21px #1143979e}.footer-card-body{padding:2rem 1.5rem}.footer-status-badge,.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:600;display:inline-flex}.footer-status-badge{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:999px;padding:.35rem .875rem}.footer-description{color:#ffffffbf;max-width:32rem;margin-top:.75rem;font-size:.9375rem;line-height:1.75}.footer-social-heading{color:#ffffff9e;font-size:.8125rem;font-weight:600}.footer-social-cta{background:#194ea833;border:1px solid #ffffff61;border-radius:.75rem;padding:.6rem;display:inline-flex}.footer-social-cta:hover{background:#173f7a}.footer-brand-wrapper{height:clamp(2.55rem,7.65vw,6.8rem);line-height:0}.footer-brand{font-family:var(--font-heading);text-align:center;white-space:nowrap;font-size:clamp(6rem,18vw,16rem);font-weight:800;line-height:.85}.footer-bottom-meta{color:rgb(var(--text-rgb) / .45);font-family:var(--font-mono);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding-top:1.25rem;font-size:.75rem;font-weight:600;display:flex}@media (min-width:640px){.footer-card-body{padding:2.5rem 2rem}}@media (max-width:639px){.footer-bottom-meta{flex-direction:column;justify-content:center}}.hero-stage{--hero-height:max(100svh, 36rem);margin-top:-3.75rem;position:relative}.hero-sticky{height:var(--hero-height);position:relative;top:0;overflow:hidden;container-type:inline-size}.hero-frame{isolation:isolate;contain:paint;background-color:#4a83eb;background-image:linear-gradient(#ffffff0a 0%,#0000 35%,#1443972e 100%),url(/hero/sky-atmosphere-v2.avif);background-position:50%;background-size:cover;position:absolute;inset:0;overflow:hidden}.hero-frame:before{background-blend-mode:soft-light;opacity:.28;pointer-events:none;content:"";background-image:linear-gradient(110deg,#d5efff1a,#0000 42%,#4986eb14),url(/hero/grain.svg);background-repeat:no-repeat,repeat;background-size:cover,auto;position:absolute;inset:0}.hero-copy{z-index:1;color:#fff;text-align:center;text-shadow:0 2px 24px #1a489133;flex-direction:column;justify-content:center;align-items:center;padding:clamp(6.75rem,12vh,9rem) clamp(1.5rem,6vw,5rem) 10rem;display:flex;position:absolute;inset:0}.hero-title{letter-spacing:-.068em;width:100%;max-width:16ch;margin-inline:auto;font-size:clamp(3rem,6.6vw,6.35rem);font-weight:650;line-height:.96}.hero-title span,.hero-title em{white-space:nowrap;display:block}.hero-title em{letter-spacing:-.06em;margin-top:.12em;font-family:Georgia,serif;font-size:.93em;font-weight:400}.hero-identity{text-align:left;text-transform:uppercase;justify-content:center;align-items:center;gap:1rem;width:100%;margin-top:2.2rem;font-weight:600;display:flex}.hero-avatar-stack{flex:none;align-items:center;padding-left:.15rem;display:flex}.hero-avatar{background:#e9eff8;border:2px solid #ffffffe6;border-radius:50%;place-items:center;width:3.35rem;height:3.35rem;transition:transform .36s cubic-bezier(.16,1,.3,1),box-shadow .36s;display:grid;position:relative;overflow:hidden;box-shadow:0 .5rem 1.25rem #0208123d}.hero-avatar+.hero-avatar{margin-left:-.9rem}.hero-avatar-python{background:#dbeafe}.hero-avatar-colab{background:#ffedc2}.hero-avatar-profile-secondary{background:#dce5f2}.hero-avatar-profile-primary{background:#cbd8ea}.hero-avatar img{object-fit:contain;width:62%;height:62%}.hero-avatar-profile img{object-fit:cover;width:100%;height:100%}.hero-identity-copy{flex-direction:column;gap:.5rem;min-width:0;display:flex}.hero-identity-copy p:first-child{font-family:var(--font-heading);letter-spacing:.14em;font-size:.82rem}.hero-identity-copy p:last-child{color:#ffffffad;font-family:var(--font-mono);letter-spacing:.1em;font-size:.66rem}.hero-cta-anchor{z-index:2;bottom:max(1.5rem, env(safe-area-inset-bottom));position:absolute;left:50%;transform:translate(-50%)}.hero-cta{color:#fff;text-shadow:0 1px 8px #02081257;-webkit-backdrop-filter:blur(18px)saturate(1.35);backdrop-filter:blur(18px)saturate(1.35);background:#ffffff24;border:1px solid #ffffff4d;border-radius:1rem;justify-content:space-between;align-items:center;gap:1.5rem;min-width:11.5rem;min-height:3.15rem;padding:.38rem .4rem .38rem 1.25rem;font-weight:700;transition:transform .22s cubic-bezier(.22,1,.36,1),background-color .22s,border-color .22s,box-shadow .22s;display:inline-flex;box-shadow:0 12px 28px -18px #020812c7,inset 0 1px #ffffff2e}.hero-cta-icon{color:#101923;background:#ffffffdb;border-radius:.67rem;justify-content:center;align-items:center;width:2.42rem;height:2.42rem;transition:transform .22s cubic-bezier(.22,1,.36,1);display:inline-flex;box-shadow:inset 0 1px #fffffff2,0 7px 16px -10px #020812b8}.hero-social-links{z-index:2;right:clamp(1.25rem,2.5vw,2.25rem);bottom:max(1.25rem, env(safe-area-inset-bottom));flex-direction:column;display:flex;position:absolute}.hero-social-link{color:#fff;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;transition:transform .26s cubic-bezier(.16,1,.3,1);display:flex}.hero-cta:focus-visible,.hero-social-link:focus-visible{outline-offset:3px;outline:2px solid #fff}.hero-cta:focus-visible{background-color:#fff3}.hero-cta:focus-visible .hero-cta-icon{transform:translate(2px)}.hero-social-link:focus-visible{transform:translate(-6px)scale(1.08)}@media (hover:hover) and (pointer:fine){.hero-avatar:hover{z-index:10;transform:translateY(-.55rem)scale(1.1);box-shadow:0 .85rem 1.5rem #02081252}.hero-cta:hover{background-color:#fff3;border-color:#fff6;transform:translateY(-2px)scale(1.015);box-shadow:0 16px 32px -18px #020812d1,inset 0 1px #ffffff38}.hero-cta:hover .hero-cta-icon{transform:translate(2px)}.hero-social-link:hover{transform:translate(-6px)scale(1.08)}}.hero-cta:active{transform:translateY(0)scale(.985)}@media (max-width:767px){.hero-frame{background-position:50%,74%}.hero-title{font-size:clamp(2.5rem,9.8cqi,4.5rem)}}@media (max-width:480px){.hero-stage{--hero-mobile-bottom-space:max(1rem, env(safe-area-inset-bottom))}.hero-title{font-size:clamp(2rem,11cqi,3.4rem)}.hero-title em{font-size:.84em}.hero-identity{gap:.7rem}.hero-avatar{border-width:1.5px;width:2.2rem;height:2.2rem}.hero-avatar+.hero-avatar{margin-left:-.72rem}.hero-identity-copy{gap:.35rem}.hero-identity-copy p:first-child{letter-spacing:.1em;font-size:.72rem}.hero-identity-copy p:last-child{letter-spacing:.07em;font-size:.57rem}.hero-cta-anchor{bottom:var(--hero-mobile-bottom-space);left:.75rem;transform:none}.hero-social-links{right:.75rem;bottom:var(--hero-mobile-bottom-space)}}@media (min-width:768px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.hero-stage{height:calc(var(--hero-height) + 3.75rem)}.hero-sticky{position:sticky}.hero-frame{border-radius:2rem;transition:transform .72s cubic-bezier(.16,1,.3,1);transform:scale(1.06)}.hero-frame:after{border-radius:inherit;opacity:0;pointer-events:none;content:"";border:1px solid #ffffff29;transition:opacity .36s ease-out .18s;position:absolute;inset:0}.hero-stage-compact .hero-frame{transform:scale(var(--hero-scale-x), var(--hero-scale-y))}.hero-stage-compact .hero-frame:after{opacity:1}.hero-cta-anchor,.hero-social-links{transition:translate .72s cubic-bezier(.16,1,.3,1)}.hero-stage-compact .hero-cta-anchor{translate:0 calc(-1 * var(--hero-inset))}.hero-stage-compact .hero-social-links{translate:calc(-1 * var(--hero-inset)) calc(-1 * var(--hero-inset))}}.tech-grid{grid-template-columns:repeat(4,1fr);gap:1rem .5rem;margin-top:1.5rem;display:grid}.tech-stack-item{text-align:center;flex-direction:column;align-items:center;display:flex}.tech-stack-item p{color:rgb(var(--text-rgb) / .5);font-family:var(--font-mono);margin-top:.5rem;font-size:.75rem;font-weight:600}.tech-icon-shell{border:1px solid var(--card-border);background:var(--surface);border-radius:1rem;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;display:flex;position:relative}.tech-icon-shell img{object-fit:contain;width:1.62rem;height:1.62rem}.tech-icon-shell span{z-index:-1;position:absolute}@media (min-width:640px){.tech-grid{grid-template-columns:repeat(6,1fr)}}@media (min-width:768px){.tech-grid{grid-template-columns:repeat(7,1fr)}}@media (min-width:1024px){.tech-grid{grid-template-columns:repeat(9,1fr)}}.page-shell,.detail-shell{max-width:72rem;margin-inline:auto;padding-inline:1.75rem}.page-header{text-align:center;padding:3.5rem 0 2.5rem}.page-header h1{font-size:var(--type-page-title-size);letter-spacing:-.032em;font-weight:800;line-height:1.16}.page-header p{max-width:40rem;color:var(--muted);margin:.75rem auto 0;font-size:.95rem;line-height:1.7}.featured-section{padding-bottom:3rem}.eyebrow{color:rgb(var(--accent-rgb) / .75)}.featured-card{border:1px solid var(--card-border);background:var(--surface);border-radius:1.25rem;margin-top:.75rem;display:grid;overflow:hidden}.featured-image{min-height:15rem;position:relative;overflow:hidden}.featured-image img{object-fit:cover;width:100%;height:100%}.featured-body{padding:1.5rem}.featured-meta,.projects-card-meta,.detail-meta{color:rgb(var(--text-rgb) / .48);font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:.55rem;font-size:.75rem;display:flex}.featured-meta span:last-child,.projects-card-meta span:last-child,.detail-meta>span:not(:first-child){border:1px solid var(--card-border);border-radius:999px;padding:.2rem .55rem}.featured-body h2{letter-spacing:-.035em;margin-top:.75rem;font-size:1.5rem;font-weight:800;line-height:1.2}.featured-body>p{color:var(--muted);margin-top:.65rem;line-height:1.7}.chip-row,.action-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.chip-row{margin-top:.9rem}.chip-row span{border:1px solid var(--card-border);color:rgb(var(--text-rgb) / .58);font-family:var(--font-mono);border-radius:.45rem;padding:.25rem .6rem;font-size:.7rem;font-weight:600}.action-row{margin-top:1.2rem}.primary-action,.secondary-action,.projects-card-cta,.icon-button{border-radius:.7rem;justify-content:center;align-items:center;gap:.5rem;font-weight:700;display:inline-flex}.primary-action{border:1px solid rgb(var(--accent-rgb) / .4);color:rgb(var(--accent-rgb));background:rgb(var(--accent-rgb) / .1);padding:.62rem 1rem}.secondary-action{border:1px solid var(--card-border);padding:.62rem 1rem}@media (min-width:768px){.featured-card{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.featured-body{padding:2rem}.page-header{padding-top:5rem}}.listing-toolbar,.blog-toolbar{gap:.75rem;margin-bottom:2rem;display:grid}.listing-toolbar{grid-template-columns:1fr}.search-field{border:1px solid var(--card-border);background:var(--surface);border-radius:.85rem;align-items:center;gap:.65rem;min-height:3rem;padding:0 .9rem;display:flex}.search-field input{background:0 0;outline:none;width:100%}.listing-toolbar select{border:1px solid var(--card-border);min-height:3rem;color:rgb(var(--text-rgb) / .7);background:var(--surface);border-radius:.85rem;padding:0 .9rem}.projects-grid{gap:1rem;display:grid}.projects-card{border:1px solid var(--card-border);background:var(--surface);border-radius:1rem;overflow:hidden}.projects-card-image-wrap{aspect-ratio:16/10;display:block;position:relative;overflow:hidden}.projects-card-image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.projects-card:hover img{transform:scale(1.025)}.projects-card-category{color:#fff;font-family:var(--font-mono);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a1423b8;border-radius:999px;padding:.25rem .6rem;font-size:.68rem;position:absolute;bottom:.75rem;right:.75rem}.projects-card-body{padding:1.2rem}.projects-card-body h2{letter-spacing:-.025em;margin-top:.7rem;font-size:1.2rem;font-weight:750}.projects-card-body>p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.5rem;font-size:.875rem;line-height:1.65;display:-webkit-box;overflow:hidden}.projects-card-actions{gap:.5rem;margin-top:1rem;display:flex}.projects-card-cta{color:rgb(var(--accent-rgb));background:rgb(var(--accent-rgb) / .1);padding:.5rem .8rem;font-size:.8rem}.icon-button{border:1px solid var(--card-border);width:2.2rem}.empty-message{color:var(--muted);text-align:center;padding:3rem 0}@media (min-width:640px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.projects-grid{grid-template-columns:repeat(3,1fr)}.listing-toolbar{grid-template-columns:2.3fr 1fr 1fr}}.blog-toolbar{grid-template-columns:1fr}.blog-tabs{border:1px solid var(--card-border);background:var(--surface);border-radius:.85rem;gap:.35rem;padding:.25rem;display:flex}.blog-tabs button{color:var(--muted);border-radius:.62rem;flex:1;padding:.55rem 1rem;font-weight:650}.blog-tabs button.active{color:rgb(var(--accent-rgb));background:rgb(var(--accent-rgb) / .11)}.blog-list{border-top:1px solid var(--card-border)}.post-row{border-bottom:1px solid var(--card-border);gap:1.2rem;padding:1.5rem 0;display:grid}.post-row-image{aspect-ratio:16/9;border-radius:.85rem;position:relative;overflow:hidden}.post-row-image img{object-fit:cover;width:100%;height:100%}.post-row-meta{color:rgb(var(--text-rgb) / .45);font-family:var(--font-mono);gap:.6rem;font-size:.72rem;display:flex}.post-row-meta span:last-child{color:rgb(var(--accent-rgb) / .75)}.post-row h2{letter-spacing:-.025em;margin-top:.55rem;font-size:1.25rem;font-weight:750;line-height:1.25}.post-row p{color:var(--muted);margin-top:.5rem;line-height:1.65}@media (min-width:640px){.blog-toolbar{grid-template-columns:1fr auto}.post-row{grid-template-columns:14rem 1fr;align-items:center}}.detail-shell{padding-top:2rem;padding-bottom:4rem}.back-link{color:rgb(var(--text-rgb) / .62);align-items:center;gap:.5rem;font-size:.875rem;font-weight:650;display:inline-flex}.detail-header{margin-top:1.25rem}.detail-header h1{letter-spacing:-.05em;font-size:clamp(1.92rem,5vw,2.45rem);font-weight:900;line-height:1.08}.detail-meta{margin-top:1rem}.detail-meta>span:first-child{align-items:center;gap:.4rem;display:inline-flex}.detail-grid{gap:2.25rem;margin-top:2.25rem;display:grid}.detail-side{order:2}.detail-side section{border-bottom:1px solid var(--card-border);padding:1rem 0}.detail-side h3{letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:750}.detail-side p{color:var(--muted);margin-top:.65rem;line-height:1.6}.detail-article{order:1;min-width:0}.detail-cover{border:1px solid var(--card-border);border-radius:1rem;margin-bottom:2rem;overflow:hidden}.detail-cover img{object-fit:cover;width:100%;max-height:32rem}.author-card{align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.author-card img{object-fit:cover;border-radius:50%;width:3rem;height:3rem}.suggested-list{margin-top:.5rem;display:grid}.suggested-list a{gap:.25rem;padding:.7rem 0;display:grid}.suggested-list strong{font-size:.86rem;line-height:1.35}.suggested-list span{color:var(--muted);font-family:var(--font-mono);font-size:.68rem}@media (min-width:1024px){.detail-grid{grid-template-columns:minmax(0,.82fr) minmax(0,1.78fr);gap:2.5rem}.detail-side{order:1;align-self:start;position:sticky;top:6rem}.detail-article{order:2}}.markdown-content{color:rgb(var(--text-rgb) / .76);font-size:1rem;line-height:1.8}.markdown-content :is(h1,h2,h3,h4){color:var(--text);letter-spacing:-.025em;margin:1.8em 0 .65em;font-weight:800;line-height:1.25}.markdown-content h2{font-size:1.5rem}.markdown-content h3{font-size:1.2rem}.markdown-content p,.markdown-content ul,.markdown-content ol,.markdown-content pre,.markdown-content table,.markdown-content blockquote{margin:1rem 0}.markdown-content ul,.markdown-content ol{padding-left:1.4rem}.markdown-content ul{list-style:outside}.markdown-content ol{list-style:decimal}.markdown-content a{color:rgb(var(--accent-rgb));text-underline-offset:.2em;text-decoration:underline}.markdown-content img{border-radius:.7rem;height:auto;margin:1.5rem auto}.markdown-content pre{background:#f6f8fa;border-radius:.75rem;padding:1rem;font-size:.85rem;overflow-x:auto}.markdown-content code:not(pre code){background:rgb(var(--text-rgb) / .06);border-radius:.3rem;padding:.12rem .3rem;font-size:.88em}.markdown-content table{border-collapse:collapse;width:100%;font-size:.85rem;display:block;overflow-x:auto}.markdown-content :is(th,td){border:1px solid var(--card-border);text-align:left;padding:.55rem .7rem}.markdown-content blockquote{border-left:3px solid rgb(var(--accent-rgb) / .4);color:var(--muted);padding-left:1rem}.reading-progress{z-index:40;flex-direction:column;align-items:center;gap:.6rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.reading-progress-ring{background:conic-gradient(rgb(var(--accent-rgb)) calc(var(--progress) * 1%), rgb(var(--text-rgb) / .1) 0);border-radius:50%;place-items:center;width:3rem;height:3rem;display:grid}.reading-progress-ring div{background:var(--surface);width:2.5rem;height:2.5rem;font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:.65rem;display:grid}.reading-progress button{border:1px solid var(--card-border);width:3rem;height:3rem;color:rgb(var(--accent-rgb));background:var(--surface);border-radius:.8rem;place-items:center;display:grid;box-shadow:0 8px 25px #0000001a}.contact-grid{gap:1rem;padding-bottom:4rem;display:grid}.contact-email,.contact-social{border:1px solid var(--card-border);background:var(--surface);border-radius:1rem}.contact-email{flex-direction:column;gap:1.2rem;padding:1.5rem;display:flex}.contact-icon{border:1px solid rgb(var(--accent-rgb) / .15);width:2.7rem;height:2.7rem;color:rgb(var(--accent-rgb) / .65);background:rgb(var(--accent-rgb) / .07);border-radius:50%;flex:none;place-items:center;display:grid}.contact-email h2{margin-top:.3rem;font-size:1.5rem;font-weight:800}.contact-email>div>p:not(.eyebrow){color:var(--muted);margin-top:.6rem;line-height:1.7}.contact-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.2rem;display:flex}.contact-socials{gap:1rem;display:grid}.contact-social{align-items:flex-start;gap:.9rem;padding:1.25rem;display:flex}.contact-social h3{word-break:break-word;margin-top:.15rem;font-size:1rem;font-weight:700}.contact-social p:last-child{color:var(--muted);margin-top:.2rem;font-size:.85rem;line-height:1.5}@media (min-width:768px){.contact-grid{grid-template-columns:1.1fr .9fr}.contact-email{padding:2rem}}.resume-profile{border:1px solid var(--card-border);background:var(--surface);border-radius:1.25rem;padding:1.5rem}.resume-profile-hero{text-align:center;flex-direction:column;align-items:center;gap:1.1rem;display:flex}.resume-profile-hero>img{border:2px solid rgb(var(--accent-rgb) / .3);object-fit:cover;border-radius:50%;width:7.5rem;height:7.5rem}.resume-profile-hero h2{letter-spacing:-.04em;font-size:1.72rem;font-weight:800}.resume-profile-hero p{color:var(--muted);margin-top:.3rem}.resume-about{color:var(--muted);white-space:pre-line;margin-top:1.35rem;font-size:.9rem;line-height:1.75}.resume-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;margin-top:1.35rem;display:flex}.profile-badges{flex-wrap:wrap;gap:.45rem;display:flex}.profile-badges span{border:1px solid var(--card-border);color:var(--muted);border-radius:.5rem;align-items:center;gap:.4rem;padding:.32rem .65rem;font-size:.75rem;display:inline-flex}.resume-section{padding:2rem 0}.section-heading{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.section-heading h2{letter-spacing:-.04em;font-size:1.5rem;font-weight:800}.section-heading>span{border:1px solid var(--card-border);min-width:1.55rem;height:1.55rem;color:var(--muted);font-family:var(--font-mono);border-radius:999px;place-items:center;font-size:.65rem;display:grid}.expertise-grid,.resume-cards{gap:.8rem;display:grid}.expertise-grid article{border:1px solid var(--card-border);background:var(--surface);border-radius:1rem;gap:1rem;padding:1.25rem;display:flex}.expertise-icon{width:2.25rem;height:2.25rem;color:rgb(var(--accent-rgb) / .7);background:rgb(var(--accent-rgb) / .08);border-radius:.6rem;flex:none;place-items:center;display:grid}.expertise-grid h3{font-weight:700}.expertise-grid p{color:var(--muted);margin-top:.3rem;font-size:.82rem;line-height:1.6}.resume-card{border:1px solid var(--card-border);background:var(--surface);border-radius:1rem;padding:1.25rem}.resume-period{color:var(--muted);font-family:var(--font-mono);margin-bottom:.65rem;font-size:.68rem;display:inline-block}.resume-card-head{gap:.7rem;display:flex}.resume-card-head img{border:1px solid var(--card-border);object-fit:contain;border-radius:.5rem;width:2.4rem;height:2.4rem;padding:.3rem}.resume-card-head h3{font-size:1.05rem;font-weight:700}.resume-card-head p{color:var(--muted);font-family:var(--font-mono);margin-top:.15rem;font-size:.7rem;font-weight:600}.description-block{color:var(--muted);margin-top:.8rem;font-size:.85rem;line-height:1.7}.desc-content{overflow:hidden}.desc-clamped{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.desc-list{padding-left:1.2rem;list-style:outside}.desc-content>*+*{margin-top:.5rem}.desc-toggle{color:rgb(var(--accent-rgb));margin-top:.35rem;font-size:.78rem;font-weight:700}.desc-toggle:hover{text-decoration:underline}@media (min-width:640px){.resume-profile{padding:2rem}.resume-profile-hero{text-align:left;flex-direction:row}.expertise-grid{grid-template-columns:repeat(2,1fr)}}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;padding:3rem 1.5rem;display:flex}.error-page h1{margin-top:.5rem;font-size:2rem;font-weight:850}.error-page>p:not(.eyebrow){max-width:30rem;color:var(--muted);margin-top:.7rem;line-height:1.7}.error-page .primary-action{margin-top:1.25rem}@media (prefers-reduced-motion:reduce){.hero-cta,.hero-cta-icon,.hero-avatar,.hero-social-link,.navbar-avatar-link,.navbar-contact-cta,.mobile-navbar-panel{transition:none;transform:none!important}.projects-card-image-wrap img{transition:none}}@media (prefers-reduced-transparency:reduce){.navbar-shell,.footer-shell{-webkit-backdrop-filter:none;backdrop-filter:none;background:#3e86ff}.hero-cta{-webkit-backdrop-filter:none;backdrop-filter:none;background:#111a24}.hero-frame:before{display:none}}@media (max-width:480px) and (prefers-reduced-transparency:reduce){.navbar-shell{background:0 0}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
