/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:host,:root{--color-green-100:oklch(96.2% .044 156.743);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-800:oklch(44.8% .119 151.328);--color-teal-400:oklch(77.7% .152 181.912);--color-cyan-400:oklch(78.9% .154 211.53);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-800:oklch(43.8% .218 303.724);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-inter);--default-mono-font-family:var(--font-inter)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-full{top:100%}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-3{left:calc(var(--spacing)*3)}.z-10{z-index:10}.z-50{z-index:50}.z-\[999999\]{z-index:999999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.my-10{margin-block:calc(var(--spacing)*10)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-48{height:calc(var(--spacing)*48)}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-48{width:calc(var(--spacing)*48)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.min-w-\[80px\]{min-width:80px}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-16{gap:calc(var(--spacing)*16)}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-blue-300\/70{border-color:#90c5ffb3}@supports (color:color-mix(in lab,red,red)){.border-blue-300\/70{border-color:color-mix(in oklab,var(--color-blue-300)70%,transparent)}}.border-blue-400\/50{border-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.border-blue-400\/50{border-color:color-mix(in oklab,var(--color-blue-400)50%,transparent)}}.border-cyan-400\/30{border-color:#00d2ef4d}@supports (color:color-mix(in lab,red,red)){.border-cyan-400\/30{border-color:color-mix(in oklab,var(--color-cyan-400)30%,transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300\/50{border-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.border-gray-300\/50{border-color:color-mix(in oklab,var(--color-gray-300)50%,transparent)}}.border-teal-400\/60{border-color:#00d3bd99}@supports (color:color-mix(in lab,red,red)){.border-teal-400\/60{border-color:color-mix(in oklab,var(--color-teal-400)60%,transparent)}}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-white\/80{border-color:#fffc}@supports (color:color-mix(in lab,red,red)){.border-white\/80{border-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.border-white\/90{border-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.border-white\/90{border-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200\/50{background-color:#e5e7eb80}@supports (color:color-mix(in lab,red,red)){.bg-gray-200\/50{background-color:color-mix(in oklab,var(--color-gray-200)50%,transparent)}}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-900\/95{background-color:#101828f2}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/95{background-color:color-mix(in oklab,var(--color-gray-900)95%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-br,.bg-gradient-to-l{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-l{--tw-gradient-position:to left in oklab}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-\[\#1e40af\]{--tw-gradient-from:#1e40af;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-\[\#7ddcff\]{--tw-gradient-from:#7ddcff;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black{--tw-gradient-from:var(--color-black);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-400{--tw-gradient-from:var(--color-blue-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-gray-50{--tw-gradient-from:var(--color-gray-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-gray-900{--tw-gradient-from:var(--color-gray-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-\[\#3b82f6\]{--tw-gradient-via:#3b82f6;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-\[\#60aaff\]{--tw-gradient-via:#60aaff;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black{--tw-gradient-via:var(--color-black);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-gray-900{--tw-gradient-via:var(--color-gray-900);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-\[\#0f766e\]{--tw-gradient-to:#0f766e;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-\[\#14b8a6\]{--tw-gradient-to:#14b8a6;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-200{--tw-gradient-to:var(--color-blue-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-cyan-400{--tw-gradient-to:var(--color-cyan-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-800{--tw-gradient-to:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-500{--tw-gradient-to:var(--color-purple-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-6{padding:calc(var(--spacing)*6)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-4{padding-right:calc(var(--spacing)*4)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.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)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-300{color:var(--color-green-300)}.text-green-400{color:var(--color-green-400)}.text-green-600{color:var(--color-green-600)}.text-green-800{color:var(--color-green-800)}.text-purple-300{color:var(--color-purple-300)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-purple-800{color:var(--color-purple-800)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-gray-400::placeholder{color:var(--color-gray-400)}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}.shadow-lg,.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-blue-300\/50{--tw-shadow-color:#90c5ff80}@supports (color:color-mix(in lab,red,red)){.shadow-blue-300\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-blue-300)50%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-blue-400\/30{--tw-shadow-color:#54a2ff4d}@supports (color:color-mix(in lab,red,red)){.shadow-blue-400\/30{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-blue-400)30%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-blue-400\/50{--tw-shadow-color:#54a2ff80}@supports (color:color-mix(in lab,red,red)){.shadow-blue-400\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-blue-400)50%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-cyan-400\/20{--tw-shadow-color:#00d2ef33}@supports (color:color-mix(in lab,red,red)){.shadow-cyan-400\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-cyan-400)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-teal-400\/40{--tw-shadow-color:#00d3bd66}@supports (color:color-mix(in lab,red,red)){.shadow-teal-400\/40{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-teal-400)40%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-white\/60{--tw-shadow-color:#fff9}@supports (color:color-mix(in lab,red,red)){.shadow-white\/60{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-white)60%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-white\/70{--tw-shadow-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.shadow-white\/70{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-white)70%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-white\/80{--tw-shadow-color:#fffc}@supports (color:color-mix(in lab,red,red)){.shadow-white\/80{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-white)80%,transparent)var(--tw-shadow-alpha),transparent)}}.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,)}.drop-shadow-\[0_2px_8px_rgba\(0\,0\,0\,0\.3\)\]{--tw-drop-shadow-size:drop-shadow(0 2px 8px var(--tw-drop-shadow-color,#0000004d));--tw-drop-shadow:var(--tw-drop-shadow-size)}.drop-shadow-\[0_2px_8px_rgba\(0\,0\,0\,0\.3\)\],.drop-shadow-\[0_2px_8px_rgba\(255\,255\,255\,0\.7\)\]{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,)}.drop-shadow-\[0_2px_8px_rgba\(255\,255\,255\,0\.7\)\]{--tw-drop-shadow-size:drop-shadow(0 2px 8px var(--tw-drop-shadow-color,#ffffffb3));--tw-drop-shadow:var(--tw-drop-shadow-size)}.drop-shadow-\[0_4px_8px_rgba\(255\,255\,255\,0\.3\)\]{--tw-drop-shadow-size:drop-shadow(0 4px 8px var(--tw-drop-shadow-color,#ffffff4d));--tw-drop-shadow:var(--tw-drop-shadow-size)}.drop-shadow-\[0_4px_8px_rgba\(255\,255\,255\,0\.3\)\],.drop-shadow-\[0_4px_8px_rgba\(255\,255\,255\,0\.8\)\]{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,)}.drop-shadow-\[0_4px_8px_rgba\(255\,255\,255\,0\.8\)\]{--tw-drop-shadow-size:drop-shadow(0 4px 8px var(--tw-drop-shadow-color,#fffc));--tw-drop-shadow:var(--tw-drop-shadow-size)}.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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md))}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm))}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\/item\:scale-110:is(:where(.group\/item):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\/item\:text-gray-300:is(:where(.group\/item):hover *){color:var(--color-gray-300)}.group-hover\/item\:text-gray-600:is(:where(.group\/item):hover *){color:var(--color-gray-600)}.group-hover\/item\:text-gray-900:is(:where(.group\/item):hover *){color:var(--color-gray-900)}.group-hover\/item\:text-white:is(:where(.group\/item):hover *){color:var(--color-white)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-100\/50:hover{background-color:#f3f4f680}@supports (color:color-mix(in lab,red,red)){.hover\:bg-gray-100\/50:hover{background-color:color-mix(in oklab,var(--color-gray-100)50%,transparent)}}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300\/50:hover{background-color:#d1d5dc80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-gray-300\/50:hover{background-color:color-mix(in oklab,var(--color-gray-300)50%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:text-blue-300:hover{color:var(--color-blue-300)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}}}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}[data-theme=light]{--background:#f7f7f7;--foreground:#171717}body{color:var(--foreground);font-family:var(--font-inter);background:radial-gradient(at 60% 20%,#23243a 0,#0a0a0a 100%)}.font-heading{font-family:var(--font-poppins)}.font-body{font-family:var(--font-inter)}[data-theme=light] body{color:var(--foreground);background:radial-gradient(at 60% 20%,#e0e7ff 0,#f7f7f7 100%)}section.bg-gradient-to-b,section.bg-gradient-to-r{background:0 0}[data-theme=light] section.bg-gradient-to-b{background:linear-gradient(#e0e7ff,#f7f7f7)!important}[data-theme=light] section.bg-gradient-to-r{background:linear-gradient(90deg,#e0e7ff,#f7f7f7)!important}[data-theme=light] .bg-white\/10{background-color:#ffffffb3!important}[data-theme=light] .text-white{color:#0f172a!important;font-weight:600!important}[data-theme=light] .text-gray-200{color:#1e293b!important;font-weight:500!important}[data-theme=light] .text-gray-300{color:#334155!important;font-weight:500!important}[data-theme=light] .text-gray-400{color:#475569!important;font-weight:400!important}[data-theme=light] .text-gray-500{color:#64748b!important;font-weight:400!important}[data-theme=light] .text-gray-700{color:#374151!important;font-weight:500!important}[data-theme=light] .text-gray-800{color:#1f2937!important;font-weight:600!important}[data-theme=light] .text-gray-900{color:#111827!important;font-weight:600!important}[data-theme=light] .text-slate-900{color:#0f172a!important;font-weight:600!important}[data-theme=light] .text-black{color:#000!important;font-weight:600!important}[data-theme=light] h1,[data-theme=light] h2,[data-theme=light] h3,[data-theme=light] h4,[data-theme=light] h5,[data-theme=light] h6{font-weight:700!important}[data-theme=light] .font-medium{font-weight:600!important}[data-theme=light] .font-semibold{font-weight:700!important}[data-theme=light] .text-transparent{color:#0000!important}[data-theme=light] .border-white\/10,[data-theme=light] .border-white\/30,[data-theme=light] .border-white\/5{border-color:#d1d5db!important}[data-theme=light] .shadow-inner,[data-theme=light] .shadow-lg{box-shadow:0 2px 8px #00000014,0 1.5px 4px #0000000a!important}[data-theme=light] .fixed.inset-0.z-\[99999\]{display:none!important}:root,[data-theme=dark]{--page:#0e171e;--surface:#15232d;--surface-raised:#1b2c37;--ink:#eef3f5;--muted:#afbec8;--line:#30424e;--accent:#a5e6cc;--accent-ink:#103828;--background:#0e171e;--foreground:#eef3f5}[data-theme=light]{--page:#f7f8f5;--surface:#fff;--surface-raised:#edf1ec;--ink:#14262f;--muted:#52616b;--line:#cbd6d0;--accent:#23694f;--accent-ink:#fff;--background:#f7f8f5;--foreground:#14262f}[data-theme=light] body,body{background:var(--page);color:var(--ink)}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}html{scroll-padding-top:100px}main{min-height:75vh}.portfolio-page{background:var(--page);color:var(--ink)}.content-width{width:min(1180px,100% - 64px);margin-inline:auto}.narrow-content{max-width:860px}.site-header{z-index:50;background:var(--page);border-bottom:1px solid var(--line);position:sticky;top:0}.site-nav{justify-content:space-between;align-items:center;gap:20px;min-height:84px;display:flex}.site-brand{white-space:nowrap;letter-spacing:-.7px;font-size:21px;font-weight:700}.navigation-links{align-items:center;gap:25px;font-size:14px;display:flex}.navigation-links a:hover,.navigation-links a[aria-current=page]{color:var(--accent);text-underline-offset:8px;text-decoration:underline}.theme-toggle{border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:23px}.mobile-menu{display:none!important}.skip-link{z-index:100;background:var(--accent);color:var(--accent-ink);padding:14px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.home-hero{grid-template-columns:minmax(0,1fr) 265px;align-items:center;gap:100px;padding-block:88px 85px;display:grid}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:600;line-height:1.7}.home-hero h1{letter-spacing:-.045em;max-width:720px;margin:22px 0;font-size:clamp(39px,4.4vw,62px);font-weight:650;line-height:1.08}.hero-description{color:var(--muted);max-width:650px;font-size:18px;line-height:1.8}.availability{margin-top:26px;font-size:13px;line-height:1.8}.availability span{background:var(--accent);border-radius:50%;width:7px;height:7px;margin-right:10px;display:inline-block}.muted{color:var(--muted)}.actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.button-primary,.button-secondary{border:1px solid var(--line);border-radius:7px;justify-content:center;align-items:center;min-height:46px;padding:13px 20px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.button-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.button-secondary{color:var(--ink);background:0 0}.button-primary:hover,.button-secondary:hover{filter:brightness(.94)}.hero-links{color:var(--muted);flex-wrap:wrap;gap:24px;margin-top:25px;font-size:13px;display:flex}.hero-links a:hover{text-decoration:underline}.hero-profile{border-left:1px solid var(--line);padding-left:25px}.profile-photo{object-fit:cover;object-position:center;filter:saturate(.65);border-radius:9px;width:100%;height:240px;margin-bottom:26px}.hero-profile ul{color:var(--muted);margin-top:12px;font-size:13px;line-height:2.2}.section-block{border-top:1px solid var(--line);padding-block:56px 65px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:23px;display:flex}h2{letter-spacing:-.025em;font-size:28px;font-weight:600;line-height:1.3}.section-heading h2{margin-top:9px}h3{font-size:19px;font-weight:600;line-height:1.4}.section-intro{max-width:750px;margin-bottom:30px;line-height:1.8}.text-link{color:var(--accent);font-size:14px;font-weight:600}.text-link:hover{text-underline-offset:4px;text-decoration:underline}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.project-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.project-card:focus-within,.project-card:hover{border-color:var(--accent)}.project-visual{background:#101d2a;display:block}.project-visual img{width:100%;height:auto;display:block}.project-card-body{flex-direction:column;flex:1;align-items:flex-start;gap:13px;padding:24px;display:flex}.project-card-body p{font-size:14px;line-height:1.7}.project-card-body .eyebrow{font-size:10px}.project-card-body .text-link{margin-top:auto;padding-top:6px}.project-card-body .project-contribution{border-left:2px solid var(--accent);color:var(--ink);padding-left:12px}.project-contribution span{color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.demo-callout{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-wrap:wrap;gap:8px 20px;margin:0 0 28px;padding:18px 20px;font-size:14px;display:flex}.demo-callout span{color:var(--muted)}.case-summary{max-width:65ch;margin-bottom:20px}.case-workflow{gap:20px;margin-top:24px;padding-left:24px;display:grid}.case-workflow h3{margin-bottom:6px;font-size:17px}.demo-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:40px;display:grid}.demo-notes{min-width:0;font-size:15px;line-height:1.8}.demo-notes details,.demo-notes section{margin-bottom:28px}.demo-notes h2{margin-bottom:12px;font-size:21px}.demo-notes ol,.demo-notes ul{padding-left:22px}.demo-notes ul{list-style:outside}.demo-flow{list-style:decimal}.demo-notes li{margin-bottom:10px}.demo-notes p{color:var(--muted);margin-top:12px}.demo-notes summary{padding:8px 0;font-weight:600}.chat-close,.chat-mode button,.chat-privacy summary,.mobile-menu{min-height:44px}.portfolio-chat.chat-embedded{z-index:auto;min-width:0;position:static}.chat-embedded .chat-panel{width:100%;height:720px;max-height:85dvh;box-shadow:none;margin:0}@media (max-width:760px){.demo-layout{grid-template-columns:minmax(0,1fr);gap:32px}}.tags{flex-wrap:wrap;gap:7px;padding:0;list-style:none;display:flex}.tags li{color:var(--muted);background:var(--surface-raised);border-radius:4px;padding:5px 9px;font-size:11px;line-height:1.4}.career-list{padding:0;list-style:none}.career-list>li{border-top:1px solid var(--line);grid-template-columns:220px minmax(0,1fr);gap:32px;padding-block:30px;display:grid}.career-list>li:first-child{border-top:0}.career-date{color:var(--muted);font-size:13px;line-height:1.8}.career-company{color:var(--accent);margin:6px 0 14px;font-size:14px}.career-list p.muted{font-size:14px;line-height:1.9}.career-list .tags{margin-top:18px}.research-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.research-card{border:1px solid var(--line);background:var(--surface);border-radius:9px;flex-direction:column;gap:20px;padding:30px;display:flex}.research-card .text-link{margin-top:auto}.research-card p{line-height:1.8}.contact-callout h2{margin-top:13px}.contact-callout p.muted{max-width:660px;margin-top:15px;line-height:1.8}.page-section{padding-block:65px 95px}.page-title{letter-spacing:-.035em;margin:18px 0 24px;font-size:clamp(34px,4vw,54px);font-weight:650;line-height:1.16}.project-filters{grid-template-columns:2fr 1.5fr 1fr 1fr;gap:15px;margin:32px 0 22px;display:grid}.project-filters label{color:var(--muted);min-width:0;font-size:12px}.project-filters input,.project-filters select{border:1px solid var(--line);width:100%;min-height:45px;color:var(--ink);background:var(--surface);border-radius:6px;margin-top:8px;padding:10px 12px;font-size:13px;display:block}.empty-state{text-align:center;border:1px solid var(--line);border-radius:10px;padding:65px 20px}.case-study{max-width:960px}.case-header{margin-top:42px}.case-study figure{margin-top:34px}.case-study figure img{border:1px solid var(--line);border-radius:10px;width:100%;height:auto}.case-study figcaption{margin-top:12px;font-size:12px;line-height:1.7}.case-body{max-width:780px;margin-inline:auto}.case-body section{margin-top:42px}.case-body h2{margin-bottom:16px;font-size:24px}.case-body li,.case-body p{color:var(--muted);line-height:1.9}.case-body ul{padding-left:22px;list-style:outside}.case-body li+li{margin-top:9px}.case-body>.button-primary{margin-top:38px}.evidence-note{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 7px 7px 0;padding:25px}@media (max-width:1000px){.home-hero{grid-template-columns:minmax(0,1fr) 220px;gap:40px}.navigation-links{gap:16px}.project-filters,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.content-width{width:calc(100% - 36px)}.site-nav{flex-wrap:wrap;min-height:70px;padding-block:13px}.mobile-menu{min-height:38px;padding:7px 13px;display:inline-flex!important}.navigation-links{flex-wrap:wrap;gap:21px;width:100%;padding-block:14px;display:none}.navigation-links.is-open{display:flex}.home-hero{grid-template-columns:1fr;gap:35px;padding-block:50px}.hero-profile{display:none}.hero-description{font-size:16px}.section-heading{flex-direction:column;align-items:flex-start}.section-block{padding-block:40px}.career-list>li,.project-grid,.research-grid{grid-template-columns:1fr}.career-list>li{gap:10px}.page-section{padding-block:40px 65px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.site-header,.skip-link,footer{display:none}.portfolio-page{color:#000;background:#fff}.content-width{width:100%}a{text-decoration:none}}:root{--font-inter:Arial,Helvetica,sans-serif;--font-poppins:Arial,Helvetica,sans-serif}.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:60px;display:grid}.contact-facts{gap:22px;margin-top:30px;display:grid}.contact-facts dt{color:var(--accent);margin-bottom:6px;font-size:12px}.contact-facts dd{overflow-wrap:anywhere;font-size:15px;line-height:1.8}.contact-form{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:28px}.contact-form label{margin-bottom:7px;font-size:13px;display:block}.contact-form input,.contact-form textarea{background:var(--page);width:100%;color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:5px;padding:12px;display:block}.contact-form textarea{resize:vertical;min-height:160px}.contact-form button:disabled{opacity:.65;cursor:wait}.contact-form .form-row+.form-row{margin-top:18px}.publication-list{margin-top:25px;padding:0;list-style:none}.publication-list li{border-top:1px solid var(--line);padding:24px 0;line-height:1.9}.publication-list .text-link{margin-top:10px;display:inline-block}@media (max-width:760px){.contact-grid{grid-template-columns:1fr;gap:35px}}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding-block:28px;font-size:12px}.footer-content{justify-content:space-between;align-items:center}.footer-content,.footer-content>div{flex-wrap:wrap;gap:20px;display:flex}.footer-content a:hover{color:var(--accent);text-decoration:underline}.signature-intro{z-index:100;background:var(--page);color:var(--ink);pointer-events:none;place-items:center;animation:intro-exit .35s ease-in 1.65s forwards;display:grid;position:fixed;inset:0;overflow:hidden}.intro-grid{opacity:.16;background-image:linear-gradient(var(--line)1px,transparent 1px),linear-gradient(90deg,var(--line)1px,transparent 1px);background-size:70px 70px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000,#0000 70%);mask-image:radial-gradient(#000,#0000 70%)}.intro-aura{aspect-ratio:1;background:radial-gradient(circle,#4bb79d25,#548fcd15 45%,#0000 70%);border-radius:50%;width:min(580px,90vw);animation:intro-aura 1.8s ease-out both;position:absolute}.intro-composition{text-align:center;padding:30px 16px;position:relative}.intro-portrait{width:104px;height:104px;margin:0 auto 42px;position:relative}.intro-portrait img{object-fit:cover;border:2px solid var(--line);border-radius:50%;width:100%;height:100%;animation:intro-reveal .65s ease-out both}.intro-orbit{border:1px solid var(--line);border-radius:50%;position:absolute}.intro-orbit-outer{border-top-color:var(--accent);border-right-color:var(--accent);animation:intro-orbit 1.9s cubic-bezier(.2,.7,.2,1) both;inset:-15px}.intro-orbit-inner{border-bottom-color:#6ea6d3;animation:intro-orbit 1.7s ease-out reverse both;inset:-7px}.intro-kicker{color:var(--muted);letter-spacing:.25em;font-size:10px;animation:intro-reveal .55s ease-out .12s both}.intro-name{letter-spacing:-.05em;white-space:nowrap;margin:14px 0;font-size:clamp(44px,10vw,96px);font-weight:700;line-height:1.25}.intro-name span{background:linear-gradient(135deg,var(--ink),var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;animation:intro-letter .7s cubic-bezier(.16,1,.3,1) both;display:inline-block}.intro-role{color:var(--muted);letter-spacing:.14em;font-size:clamp(10px,2.5vw,12px);animation:intro-reveal .6s ease-out .42s both}.intro-rule{background:var(--accent);width:64px;height:2px;margin:26px auto 0;animation:intro-rule .8s ease-out .45s both}.intro-skip{color:var(--muted);background:var(--surface);border:1px solid var(--line);pointer-events:auto;border-radius:6px;align-items:center;gap:18px;padding:12px 16px;font-size:12px;display:flex;position:absolute;bottom:26px;right:28px}@keyframes intro-letter{0%{opacity:0;filter:blur(6px);transform:translateY(30px)rotateX(-35deg)}to{opacity:1;filter:blur();transform:none}}@keyframes intro-reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes intro-orbit{0%{opacity:0;transform:rotate(-170deg)scale(.85)}to{opacity:1;transform:rotate(30deg)scale(1)}}@keyframes intro-aura{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}@keyframes intro-rule{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes intro-exit{to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){.signature-intro{display:none}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){html.custom-pointer-active,html.custom-pointer-active *{cursor:none!important}}.pointer-dot{z-index:110;pointer-events:none;opacity:0;background:var(--accent);will-change:transform;border-radius:50%;width:8px;height:8px;transition:width .14s,height .14s,opacity .1s;position:fixed;top:0;left:0;box-shadow:0 1px 3px #0000002e}.pointer-dot[data-mode=link]{width:12px;height:12px}.pointer-dot[data-mode=text]{width:5px;height:5px}.education-gpa{color:var(--accent);margin-top:.5rem;font-weight:650}.education-achievements{color:var(--muted);margin-top:.75rem;padding-left:1.25rem;line-height:1.8;list-style:outside}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.pointer-decoration{display:none}}.portfolio-chat{right:24px;bottom:max(20px,env(safe-area-inset-bottom));z-index:80;position:fixed}.chat-launcher{border:1px solid var(--line);background:var(--accent);color:var(--accent-ink);border-radius:100px;align-items:center;gap:10px;margin-left:auto;padding:14px 20px;font-weight:650;display:flex;box-shadow:0 8px 28px #0000002e}.chat-launcher:hover{filter:brightness(1.08)}.chat-panel{background:var(--surface);border:1px solid var(--line);width:min(420px,100vw - 32px);height:min(660px,100dvh - 115px);color:var(--ink);border-radius:22px;flex-direction:column;margin-bottom:12px;animation:chat-enter .2s ease-out;display:flex;overflow:hidden;box-shadow:0 24px 90px #00000040}.chat-header{align-items:center;gap:12px;padding:20px 20px 15px;display:flex}.chat-header h2{margin:0;font-size:17px;line-height:1.4}.chat-header p{color:var(--muted);margin:3px 0 0;font-size:12px}.chat-avatar{border:1px solid var(--line);width:42px;height:42px;color:var(--accent);background:var(--surface-raised);border-radius:14px;flex-shrink:0;place-items:center;font-size:20px;font-weight:650;display:grid;position:relative}.chat-avatar span{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:8px;height:8px;position:absolute;bottom:0;right:-2px}.chat-close{width:36px;height:36px;color:var(--muted);border-radius:50%;margin-left:auto;font-size:27px;line-height:1}.chat-close:hover{background:var(--surface-raised);color:var(--ink)}.chat-mode{border-block:1px solid var(--line);color:var(--muted);align-items:center;gap:7px;padding:10px 20px;font-size:11px;display:flex}.chat-status-light{background:var(--accent);border-radius:50%;width:5px;height:5px}.chat-mode button{color:var(--ink);text-underline-offset:3px;margin-left:auto;text-decoration:underline}.chat-messages{overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:70px;padding:20px;overflow-y:auto}.chat-message{overflow-wrap:anywhere;margin-bottom:16px;font-size:13px;line-height:1.75}.chat-message p{white-space:pre-wrap;margin:0}.chat-user{background:var(--accent);color:var(--accent-ink);border-radius:16px 16px 4px;margin-left:34px;padding:10px 14px}.chat-assistant{background:var(--surface-raised);border:1px solid var(--line);border-radius:4px 16px 16px;padding:14px}.chat-excerpt-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:9px;display:block}.chat-suggestions{gap:8px;display:grid}.chat-suggestions button{text-align:left;border:1px solid var(--line);color:var(--ink);border-radius:11px;justify-content:space-between;gap:10px;padding:10px 12px;font-size:12px;display:flex}.chat-suggestions button:hover{border-color:var(--accent);background:var(--surface-raised)}.chat-suggestions span{color:var(--accent)}.chat-sources{border-top:1px solid var(--line);gap:7px;margin-top:12px;padding-top:10px;display:grid}.chat-sources a{color:var(--accent);text-underline-offset:3px;font-size:11px;line-height:1.6;text-decoration:underline}.chat-working{color:var(--muted);align-items:center;gap:9px;padding:6px 20px 12px;font-size:12px;display:flex}.chat-dots{gap:3px;display:flex}.chat-dots i{background:var(--accent);border-radius:50%;width:4px;height:4px;animation:chat-bounce .9s ease-in-out infinite alternate}.chat-dots i:nth-child(2){animation-delay:.15s}.chat-dots i:nth-child(3){animation-delay:.3s}.chat-caret{vertical-align:middle;background:var(--accent);width:2px;height:13px;margin-left:2px;animation:chat-bounce .45s ease-in-out infinite alternate;display:inline-block}.chat-error{color:var(--ink);padding:10px 20px;font-size:12px;line-height:1.6}.chat-composer{border:1px solid var(--line);background:var(--page);border-radius:13px;margin:0 16px;padding:10px 12px}.chat-composer:focus-within{border-color:var(--accent)}.chat-composer textarea{resize:none;width:100%;color:var(--ink);font:inherit;background:0 0;border:none;outline:none;max-height:80px;font-size:13px;line-height:1.5}.chat-composer textarea::placeholder{color:var(--muted)}.chat-composer-actions{color:var(--muted);justify-content:space-between;align-items:center;font-size:10px;display:flex}.chat-composer-actions button{background:var(--accent);color:var(--accent-ink);border-radius:8px;gap:10px;padding:6px 11px;font-size:12px;font-weight:600;display:flex}.chat-composer-actions button:disabled{opacity:.4;cursor:not-allowed}.chat-scope{text-align:center;margin:0;padding:9px 16px 3px}.chat-privacy,.chat-scope{color:var(--muted);font-size:10px}.chat-privacy{padding:0 18px 12px}.chat-privacy summary{cursor:pointer;text-align:center}.chat-privacy p{margin:6px 0 0;line-height:1.6}@keyframes chat-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@keyframes chat-bounce{0%{opacity:.35;transform:translateY(1px)}to{opacity:1;transform:translateY(-2px)}}@media (max-width:600px){.portfolio-chat{right:16px;bottom:max(12px,env(safe-area-inset-bottom))}.chat-panel{height:min(660px,100dvh - 100px)}.chat-launcher{padding:12px 17px;font-size:13px}.chat-composer textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){.chat-caret,.chat-dots i,.chat-panel{animation:none}}.outside-work{border:1px solid var(--line);background:var(--surface);border-radius:18px;margin-top:56px;padding:28px}.outside-work h2{margin:8px 0 12px}.outside-work>p.muted{line-height:1.8}.outside-work .tags{margin-top:20px}.outside-work-updates{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.outside-work-updates li{margin-top:16px}.outside-work-updates time{color:var(--muted);font-size:12px}@media (max-width:600px){.outside-work{padding:22px}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value: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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}