@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_26bacada-module__-BgxVa__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_26bacada-module__-BgxVa__variable{--font-geist:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_1bf8cbf6-module__FlyLvG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_1bf8cbf6-module__FlyLvG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction: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-outline-style:solid;--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}}}@layer theme{:root,:host{--font-sans:var(--font-geist), system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace;--color-slate-200:#e2e8f0;--color-gray-600:#4a5565;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-medium:500;--tracking-tighter:-.05em;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--blur-md:12px;--blur-2xl:40px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-accent:#8b9cc8;--font-display:var(--font-geist), system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif}@supports (color:lab(0% 0 0)){:root,:host{--color-slate-200:lab(91.7353% -.998765 -4.76968);--color-gray-600:lab(35.6337% -1.58697 -10.8425)}}}@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,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;-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{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}:root{--bg:#141414;--bg-raised:#1b1b1b;--ink:#f5f5f0;--ink-soft:#f5f5f0d1;--ink-muted:#f5f5f0a3;--ink-faint:#f5f5f080;--hairline:#f5f5f017;--hairline-strong:#f5f5f02e;--accent:#8b9cc8;--accent-tint:#8b9cc824;--paper:var(--ink);--radius:6px;--container:72rem;--pad-x:clamp(1.25rem, 5vw, 2.5rem);--header-h:4.75rem;--ease:cubic-bezier(.22, 1, .36, 1);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--z-header:100;--z-menu:90;--z-chat:170;--z-drawer:200;--font-display:var(--font-geist), system-ui, sans-serif;--font-text:var(--font-geist), system-ui, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace}*,:before,:after{box-sizing:border-box}html{background-color:var(--bg);font-size:16px}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;font-size:1rem;font-weight:400;line-height:1.6}::selection{background:var(--accent);color:var(--bg)}img{max-width:100%;height:auto}a{color:inherit}button{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--hairline-strong);border:3px solid var(--bg);border-radius:999px}}@layer components;@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.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}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.col-span-1{grid-column:span 1/span 1}.col-span-4{grid-column:span 4/span 4}.col-span-8{grid-column:span 8/span 8}.row-span-2{grid-row:span 2/span 2}.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}.mt-6{margin-top:calc(var(--spacing) * 6)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[100dvh\]{min-height:100dvh}.min-h-full{min-height:100%}.w-1\/2{width:50%}.w-8{width:calc(var(--spacing) * 8)}.w-24{width:calc(var(--spacing) * 24)}.w-\[calc\(33\%-1rem\)\]{width:calc(33% - 1rem)}.w-full{width:100%}.w-max{width:max-content}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[65ch\]{max-width:65ch}.max-w-\[1400px\]{max-width:1400px}.max-w-full{max-width:100%}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-y-\[1px\]{--tw-translate-y:calc(1px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-12{--tw-translate-y:calc(var(--spacing) * 12);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-16{--tw-translate-y:calc(var(--spacing) * 16);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-\[0\.98\]{scale:.98}.-rotate-45{rotate:-45deg}.rotate-45{rotate:45deg}.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}.grid-flow-dense{grid-auto-flow:dense}.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-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.rounded{border-radius:.25rem}.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[calc\(2rem-0\.375rem\)\]{border-radius:1.625rem}.rounded-full{border-radius:3.40282e38px}.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-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-slate-200\/50{border-color:#e2e8f080}@supports (color:color-mix(in lab, red, red)){.border-slate-200\/50{border-color:color-mix(in oklab, var(--color-slate-200) 50%, 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)}}.bg-black\/5{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\/5{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.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\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-cover{background-size:cover}.bg-center{background-position:50%}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-32{padding-block:calc(var(--spacing) * 32)}.py-40{padding-block:calc(var(--spacing) * 40)}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.text-wrap{text-wrap:wrap}.text-gray-600{color:var(--color-gray-600)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[0\.03\]{opacity:.03}.mix-blend-luminosity{mix-blend-mode:luminosity}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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-\[0_20px_40px_-15px_rgba\(0\,0\,0\,0\.05\)\]{--tw-shadow:0 20px 40px -15px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_0_rgba\(255\,255\,255\,0\.1\)\]{--tw-shadow:inset 0 1px 0 var(--tw-shadow-color,#ffffff1a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_0_1px_1px_rgba\(255\,255\,255\,0\.15\)\]{--tw-shadow:inset 0 1px 1px var(--tw-shadow-color,#ffffff26);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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-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\/elevation{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + 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)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.blur-md{--tw-blur:blur(var(--blur-md));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,)}.contrast-125{--tw-contrast:contrast(125%);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,)}.grayscale{--tw-grayscale:grayscale(100%);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,)}.invert{--tw-invert:invert(100%);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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-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-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));-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-3xl{--tw-backdrop-blur:blur(var(--blur-3xl));-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-filter{-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,)}.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,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-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))}.delay-100{transition-delay:.1s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.ease-\[cubic-bezier\(0\.32\,0\.72\,0\,1\)\]{--tw-ease:cubic-bezier(.32,.72,0,1);transition-timing-function:cubic-bezier(.32,.72,0,1)}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.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\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:-translate-y-\[1px\]:is(:where(.group):hover *){--tw-translate-y:calc(1px * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}.active\:scale-\[0\.98\]:active{scale:.98}@media (min-width:48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:py-48{padding-block:calc(var(--spacing) * 48)}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}@media (prefers-color-scheme:dark){.dark\:bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}}}html.modal-open,html.modal-open body{overflow:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-shell{flex-direction:column;min-height:100svh;display:flex}.site-content{flex:1}.container{width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);padding-inline:var(--pad-x);margin-inline:auto}.section{padding-block:clamp(5rem,12vh,8rem)}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--ink-muted);font-size:.72rem;font-weight:500}.mono-label{font-family:var(--font-text);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);font-size:.6875rem;font-weight:500}.mono-label--accent{color:var(--accent)}.sec-head{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(2.5rem,6vh,4rem);display:flex}.sec-head .eyebrow{margin-bottom:1.25rem}.sec-title{letter-spacing:-.04em;color:var(--ink);text-wrap:balance;font-size:clamp(2.25rem,4.6vw,3.5rem);font-weight:500;line-height:1.06}.sec-title-muted{color:var(--accent)}.sec-lead{max-width:36rem;color:var(--ink-muted);text-wrap:pretty;margin-top:1.25rem;font-size:.98rem;line-height:1.7}.sec-head-aside{flex-shrink:0}.btn{border:1px solid var(--hairline-strong);border-radius:var(--radius);color:var(--ink);cursor:pointer;transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);background:0 0;align-items:center;gap:.55rem;padding:.68rem 1.1rem;font-size:.9rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-faint);background:#f5f5f00a}.btn--solid{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn--solid:hover{background:#fff;border-color:#fff}.btn--ghost{background:#f5f5f00f;border-color:#0000}.btn--ghost:hover{background:#f5f5f01a;border-color:#0000}.icon-btn{width:2.5rem;height:2.5rem;color:var(--ink-muted);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:999px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--ink);background:#f5f5f012}.icon-btn-label{display:none}.link-btn{color:var(--ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.tabs{flex-wrap:wrap;gap:.25rem 1.75rem;display:flex}.tab,.toggle-btn{color:var(--ink-muted);cursor:pointer;transition:color .2s var(--ease);background:0 0;border:0;padding:.5rem 0;font-size:.9rem;position:relative}.tab:hover,.toggle-btn:hover,.tab.is-active,.toggle-btn.is-active{color:var(--ink)}.tab.is-active:after,.toggle-btn.is-active:after{content:"";background:var(--ink);height:1px;position:absolute;bottom:-1px;left:0;right:0}.tab-count{color:var(--ink-faint);margin-left:.45rem;font-size:.72rem}.tabs--ruled{border-bottom:1px solid var(--hairline)}.tabs--ruled .tab{padding-bottom:.9rem}.toggle{gap:1.5rem;display:flex}.status{color:var(--ink-muted);align-items:center;gap:.55rem;font-size:.85rem;display:inline-flex}.status-dot{background:var(--accent);border-radius:999px;flex-shrink:0;width:7px;height:7px;display:inline-block}.header{z-index:var(--z-header);padding-top:var(--safe-top);transition:background .25s var(--ease), border-color .25s var(--ease);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.header--scrolled{background:var(--bg);border-bottom-color:var(--hairline)}.header-inner{height:var(--header-h);max-width:calc(var(--container) + var(--pad-x) * 2 + 3rem);padding-inline:var(--pad-x);justify-content:space-between;align-items:center;gap:1.5rem;margin-inline:auto;display:flex}.header-clock{color:var(--ink);align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.clock{font-variant-numeric:tabular-nums;align-items:baseline;gap:.45rem;display:inline-flex}.header-clock .clock-time{letter-spacing:.04em;font-size:1.05rem;font-weight:500}.clock-zone{letter-spacing:.06em;color:var(--ink-faint);font-size:.7rem}.clock--inline{gap:.3rem}.header-nav{align-items:center;gap:clamp(1.5rem,3.5vw,3.25rem);display:flex}.nav-link,.nav-connect{letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:500;text-decoration:none}.nav-link{color:var(--ink-muted);transition:color .2s var(--ease)}.nav-link:hover,.nav-link.is-active{color:var(--ink)}.nav-connect{border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:var(--bg);transition:background .2s var(--ease), border-color .2s var(--ease);padding:.75rem 1.5rem}.nav-connect:hover{background:#fff;border-color:#fff}.menu-trigger{border:1px solid var(--hairline-strong);border-radius:var(--radius);color:var(--ink);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;padding:.55rem .95rem;font-size:.75rem;font-weight:500;display:none}.menu-overlay{inset:calc(var(--header-h) + var(--safe-top)) 0 0;z-index:var(--z-menu);padding:1.5rem var(--pad-x) calc(2rem + var(--safe-bottom));background:var(--bg);border-top:1px solid var(--hairline);flex-direction:column;justify-content:space-between;display:flex;position:fixed;overflow-y:auto}.menu-nav{flex-direction:column;display:flex}.menu-link{border-bottom:1px solid var(--hairline);letter-spacing:-.03em;color:var(--ink-muted);align-items:baseline;gap:1rem;padding:1.1rem 0;font-size:2rem;font-weight:500;text-decoration:none;display:flex}.menu-link.is-active{color:var(--ink)}.menu-foot{flex-direction:column;gap:1rem;padding-top:2rem;display:flex}.menu-foot-links{gap:1.5rem;font-size:.9rem;display:flex}@media (max-width:899px){.header-nav{display:none}.menu-trigger{display:inline-flex}}.hero{min-height:100svh;padding-top:calc(var(--header-h) + var(--safe-top));align-items:center;padding-bottom:4rem;display:flex}.hero-inner{width:100%;max-width:calc(var(--container) + var(--pad-x) * 2);padding-inline:var(--pad-x);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3rem;margin-inline:auto;display:grid}.hero .status{margin-bottom:1.5rem}.hero-name{letter-spacing:-.05em;color:var(--ink);font-size:clamp(3.25rem,8vw,6rem);font-weight:500;line-height:.98}.hero-role{color:var(--ink-muted);margin-top:1.1rem;font-size:clamp(1.05rem,1.6vw,1.3rem)}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.hero-portrait{width:clamp(16rem,27vw,23rem)}.hero-portrait-img{filter:grayscale()contrast(1.06);-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block;-webkit-mask-image:linear-gradient(#000 78%,#0000 100%);mask-image:linear-gradient(#000 78%,#0000 100%)}.hero-socials{gap:1.1rem;margin:2.25rem 0 0;padding:0;list-style:none;display:flex}.hero-socials a{color:#f5f5f080;width:2.25rem;height:2.25rem;transition:color .2s var(--ease);place-items:center;font-size:1.7rem;display:grid}.hero-socials a:hover{color:var(--ink)}@media (max-width:899px){.hero{min-height:auto;padding-top:calc(var(--header-h) + var(--safe-top) + 3rem)}.hero-inner{grid-template-columns:1fr;gap:2.5rem}.hero-portrait{order:-1;width:min(14rem,62vw)}}.about-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:clamp(3rem,8vw,7rem);display:grid}.about-lead{color:var(--ink);text-wrap:pretty;font-size:1.12rem;line-height:1.75}.about-body{color:var(--ink-muted);text-wrap:pretty;margin-top:1.25rem;font-size:.95rem;line-height:1.8}.about-aside .eyebrow{margin-bottom:1rem}.facts{margin:0}.fact{border-top:1px solid var(--hairline);padding:1rem 0}.fact:last-child{border-bottom:1px solid var(--hairline)}.fact dt{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-size:.7rem;font-weight:500}.fact dd{color:var(--ink);margin:.4rem 0 0;font-size:.95rem;line-height:1.6}.fact-meta{color:var(--ink-faint);margin-top:.2rem;font-size:.85rem;display:block}.skills{border-top:1px solid var(--hairline);margin-top:clamp(4rem,10vh,6rem);padding-top:3rem}.skills-title{letter-spacing:-.01em;font-size:1.15rem;font-weight:500}.skills-sub{color:var(--ink-muted);margin-top:.5rem;font-size:.9rem}.skills .tabs{margin-top:2rem}.skills-list{flex-wrap:wrap;gap:1rem 2.5rem;margin:2rem 0 0;padding:0;list-style:none;display:flex}.skills-list li{color:var(--ink);align-items:center;gap:.75rem;font-size:1.1rem;font-weight:500;display:inline-flex}.skill-icon{width:1.05rem;height:1.05rem;color:var(--ink-muted);flex-shrink:0}@media (max-width:899px){.about-grid{grid-template-columns:1fr}}.exp-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(3rem,7vw,6rem);display:grid}.exp-bar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.timeline{margin:0;padding:0;list-style:none}.timeline-item{grid-template-columns:4rem minmax(0,1fr);gap:1.25rem;display:grid}.timeline-year{font-variant-numeric:tabular-nums;color:var(--ink-faint);padding-top:.1rem;font-size:1.05rem}.timeline-body{border-left:1px solid var(--hairline-strong);padding:0 0 2.5rem 1.5rem}.timeline-item:last-child .timeline-body{padding-bottom:.5rem}.timeline-org{letter-spacing:-.01em;color:var(--ink);font-size:1.1rem;font-weight:600}.timeline-role{color:var(--ink);justify-content:space-between;gap:1rem;margin-top:.6rem;font-size:.95rem;display:flex}.timeline-period{color:var(--ink-faint);white-space:nowrap;font-size:.85rem}.timeline-bullets{margin:.85rem 0 0;padding:0;list-style:none}.timeline-bullets li{color:var(--ink-muted);text-wrap:pretty;padding-left:1rem;font-size:.9rem;line-height:1.7;position:relative}.timeline-bullets li+li{margin-top:.4rem}.timeline-bullets li:before{content:"";background:var(--ink-faint);width:5px;height:1px;position:absolute;top:.8em;left:0}.exp-education .eyebrow{margin-bottom:2rem;line-height:2.4rem}.edu-degree{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;font-size:1.05rem;font-weight:600;display:flex}.edu-tag{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.65rem;font-weight:600}.edu-school{color:var(--ink-muted);margin-top:.35rem;font-size:.92rem}.edu-period{color:var(--ink-faint);margin-top:.2rem;font-size:.85rem}.edu-detail{border-top:1px solid var(--hairline);color:var(--ink-muted);text-wrap:pretty;margin-top:1rem;padding-top:1rem;font-size:.9rem;line-height:1.7}@media (max-width:899px){.exp-grid{grid-template-columns:1fr}.exp-education .eyebrow{line-height:inherit}}.search{border-bottom:1px solid var(--hairline-strong);width:min(20rem,100%);color:var(--ink-faint);transition:border-color .2s var(--ease);align-items:center;gap:.65rem;padding:.65rem 0;display:flex}.search:focus-within{border-color:var(--ink-muted)}.search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:1rem}.search input::placeholder{color:var(--ink-faint)}.proj-count{color:var(--ink-faint);margin:1.25rem 0 .25rem;font-size:.82rem}.proj-list{margin:0;padding:0;list-style:none}.proj{border-bottom:1px solid var(--hairline);grid-template-columns:11rem minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:2rem;padding:2rem 0;display:grid}.proj-thumb{aspect-ratio:16/10;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--bg-raised);cursor:pointer;width:100%;padding:0;display:block;overflow:hidden}.thumb{width:100%;height:100%;display:block;position:relative}.thumb-media{object-fit:cover;object-position:top center;opacity:0;width:100%;height:100%;transition:opacity .4s var(--ease), transform .5s var(--ease);position:absolute;inset:0}.thumb-media.is-loaded{opacity:1}.proj-thumb:hover .thumb-media{transform:scale(1.03)}.thumb-skeleton{background:linear-gradient(100deg, var(--bg-raised) 30%, #f5f5f00d 50%, var(--bg-raised) 70%);background-size:200% 100%;animation:1.4s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{to{background-position:-200% 0}}.proj-when{color:var(--ink-muted);align-items:center;gap:.55rem;font-size:.82rem;display:flex}.proj-title{margin-top:.55rem}.proj-title button{color:var(--ink);letter-spacing:-.02em;text-align:left;cursor:pointer;transition:color .2s var(--ease);background:0 0;border:0;padding:0;font-size:1.3rem;font-weight:500;line-height:1.25}.proj-title button:hover{color:var(--accent)}.proj-org{color:var(--ink-muted);margin-top:.5rem;font-size:.88rem}.proj-note{color:var(--ink-faint);margin-top:.3rem;font-size:.82rem}.proj-desc{color:var(--ink-soft);-webkit-line-clamp:3;text-wrap:pretty;-webkit-box-orient:vertical;font-size:.95rem;line-height:1.75;display:-webkit-box;overflow:hidden}.tech-list{flex-wrap:wrap;gap:.45rem 1rem;margin:0;padding:0;list-style:none;display:flex}.tech-list li{color:var(--ink-faint);align-items:center;gap:.4rem;font-size:.8rem;display:inline-flex}.tech-icon{width:.9rem;height:.9rem;color:var(--ink-muted);flex-shrink:0}.proj-stack{margin-top:.85rem}.proj-actions{gap:.35rem;margin:.9rem 0 0 -.6rem;display:flex}.proj-empty{color:var(--ink-muted);padding:3rem 0}@media (max-width:1099px){.proj{grid-template-columns:12rem minmax(0,1fr)}.proj-detail{grid-column:2}}@media (max-width:699px){.sec-head{flex-direction:column;align-items:stretch}.search{width:100%}.proj{grid-template-columns:1fr;gap:1.1rem}.proj-detail{grid-column:auto}.proj-count-meta{display:none}}.section--contact{border-top:1px solid var(--hairline)}.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(3rem,7vw,6rem);display:grid}.contact-lead{max-width:30rem;color:var(--ink-muted);text-wrap:pretty;margin-top:1.5rem;font-size:1.02rem;line-height:1.7}.contact-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.contact-where{color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:2rem;font-size:.85rem;display:flex}.contact-where .status{font-size:inherit}.contact-links ul{margin:0;padding:.5rem 0 0;list-style:none}.contact-link{border-bottom:1px solid var(--hairline);grid-template-columns:1.25rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.9rem 0;display:grid}.contact-link:first-child{border-top:1px solid var(--hairline)}.contact-link-icon{width:16px;height:16px;color:var(--ink-faint)}.contact-link a{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--hairline-strong);-webkit-text-decoration-color:var(--hairline-strong);-webkit-text-decoration-color:var(--hairline-strong);text-decoration-color:var(--hairline-strong);text-underline-offset:4px;transition:text-decoration-color .2s var(--ease);overflow:hidden}.contact-link a:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}@media (max-width:899px){.contact-grid{grid-template-columns:1fr}}.footer{padding:3rem 0 calc(2.5rem + var(--safe-bottom));border-top:1px solid var(--hairline)}.footer-name{letter-spacing:-.01em;font-size:1.1rem;font-weight:600}.footer-sub{color:var(--ink-muted);margin-top:.4rem;font-size:.9rem}.footer-bottom{border-top:1px solid var(--hairline);color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:2.5rem;padding-top:1.5rem;font-size:.85rem;display:flex}.pm-overlay{z-index:var(--z-drawer);background:#080808c7;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0;overflow-y:auto}.pm{overscroll-behavior:contain;background:var(--bg);border:1px solid var(--hairline-strong);border-radius:10px;width:min(52rem,100%);max-height:calc(100svh - 3rem);position:relative;overflow-y:auto}.pm-close{z-index:2;border:1px solid var(--hairline-strong);background:var(--bg);width:2.25rem;height:2.25rem;color:var(--ink);cursor:pointer;transition:background .2s var(--ease);border-radius:999px;place-items:center;display:grid;position:absolute;top:.85rem;right:.85rem}.pm-close:hover{background:var(--bg-raised)}.pm-media{aspect-ratio:16/10;background:var(--bg-raised);border-bottom:1px solid var(--hairline);overflow:hidden}.pm-video,.pm-image{object-fit:cover;object-position:top center;background:var(--bg-raised);width:100%;height:100%;display:block}.pm-gallery{scroll-snap-type:x mandatory;scrollbar-width:thin;height:100%;display:flex;overflow-x:auto}.pm-gallery figure{scroll-snap-align:start;background:#fff;flex:0 0 100%;margin:0;position:relative}.pm-gallery img{object-fit:contain;width:100%;height:100%}.pm-gallery figcaption{background:var(--bg);border-top:1px solid var(--hairline);color:var(--ink-muted);padding:.6rem 1rem;font-size:.8rem;position:absolute;inset:auto 0 0}.pm-body{padding:1.75rem clamp(1.25rem,4vw,2.25rem) 2rem}.pm-meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;font-size:.82rem;display:flex}.pm-meta-sep{color:var(--ink-faint);margin-right:.5rem}.pm-title{letter-spacing:-.035em;color:var(--ink);margin-top:.75rem;font-size:clamp(1.6rem,3.5vw,2rem);font-weight:500;line-height:1.15}.pm-role{color:var(--accent);margin-top:.4rem;font-size:.95rem}.pm-course{color:var(--ink-faint);margin-top:.2rem;font-size:.85rem}.pm-desc{color:var(--ink-soft);text-wrap:pretty;margin-top:1.25rem;font-size:.98rem;line-height:1.75}.pm-label{margin-top:1.75rem;font-size:.68rem}.pm-list{margin:.75rem 0 0;padding:0;list-style:none}.pm-list li{color:var(--ink-muted);text-wrap:pretty;padding-left:1rem;font-size:.92rem;line-height:1.7;position:relative}.pm-list li+li{margin-top:.4rem}.pm-list li:before{content:"";background:var(--ink-faint);width:5px;height:1px;position:absolute;top:.8em;left:0}.pm-stack{margin-top:.75rem}.pm-stack li{color:var(--ink-muted);font-size:.88rem}.pm-stack .tech-icon{width:1rem;height:1rem}.pm-actions{border-top:1px solid var(--hairline);flex-wrap:wrap;gap:.75rem;margin-top:2rem;padding-top:1.5rem;display:flex}.chat-launcher{bottom:calc(1.5rem + var(--safe-bottom));z-index:var(--z-chat);background:var(--ink);width:3.5rem;height:3.5rem;color:var(--bg);cursor:pointer;transition:transform .3s var(--ease), background .3s var(--ease);border:1px solid #fff3;border-radius:50%;place-items:center;display:grid;position:fixed;right:clamp(1rem,4vw,2rem);box-shadow:0 8px 32px #0006}.chat-launcher:hover{transform:scale(1.08)}.chat-panel{bottom:calc(5.75rem + var(--safe-bottom));z-index:var(--z-chat);border:1px solid var(--hairline-strong);background:#121212;border-radius:1rem;flex-direction:column;width:min(24rem,100vw - 2rem);max-height:min(34rem,100vh - 8rem);display:flex;position:fixed;right:clamp(1rem,4vw,2rem);overflow:hidden;box-shadow:0 20px 60px #0009}.chat-panel-head{border-bottom:1px solid var(--hairline);background:#f2f0eb08;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.chat-panel-close{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.chat-panel-close:hover{color:var(--ink)}.chat-section{padding:clamp(2.5rem, 6vh, 4.5rem) var(--pad-x);border-top:1px solid var(--hairline)}.chat-container{border:1px solid var(--hairline);border-radius:var(--radius);background:0 0;flex-direction:column;max-width:44rem;margin-top:2rem;display:flex;overflow:hidden}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--hairline) transparent;flex-direction:column;gap:.85rem;max-height:24rem;padding:1.25rem 1.25rem .75rem;display:flex;overflow-y:auto}.chat-suggestions{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.chat-chip{border:1px solid var(--hairline);border-radius:var(--radius);font-family:var(--font-text);color:var(--ink-muted);cursor:pointer;transition:border-color .3s var(--ease), background .3s var(--ease), color .3s var(--ease);white-space:nowrap;background:0 0;padding:.5rem .9rem;font-size:.8rem}.chat-chip:hover{border-color:var(--accent);color:var(--ink)}.chat-chip:disabled{opacity:.4;pointer-events:none}.chat-msg{align-items:flex-start;gap:.6rem;display:flex}.chat-msg--user{flex-direction:row-reverse}.chat-msg-avatar{border-radius:var(--radius);border:1px solid var(--hairline);width:1.85rem;height:1.85rem;color:var(--ink-muted);background:0 0;flex-shrink:0;place-items:center;display:grid}.chat-msg--user .chat-msg-avatar{border-color:var(--hairline-strong);color:var(--ink)}.chat-msg-bubble{color:var(--ink);border:1px solid var(--hairline);border-radius:var(--radius);word-break:break-word;background:#f2f0eb08;max-width:80%;padding:.65rem .95rem;font-size:.9rem;line-height:1.6}.chat-msg--user .chat-msg-bubble{background:#8b9cc81f;border-color:#8b9cc84d}.chat-msg-bubble p{margin:0}.chat-msg-bubble p+p{margin-top:.5rem}.chat-msg-bubble a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.chat-msg-bubble a:hover{color:var(--ink)}.chat-msg-bubble strong{color:var(--ink);font-weight:600}.chat-msg-bubble ul,.chat-msg-bubble ol{margin:.3rem 0;padding-left:1.25rem}.chat-msg-bubble li{margin-bottom:.15rem}.chat-msg-bubble code{font-family:var(--font-mono);background:#f2f0eb14;padding:.1em .3em;font-size:.8rem}.chat-dots{align-items:center;gap:.3rem;padding:.2rem 0;display:inline-flex}.chat-dot{background:var(--ink-muted);width:6px;height:6px;animation:chat-dot-pulse 1.2s var(--ease) infinite}.chat-dot:nth-child(2){animation-delay:.2s}.chat-dot:nth-child(3){animation-delay:.4s}@keyframes chat-dot-pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.chat-input-row{border-top:1px solid var(--hairline);align-items:flex-end;gap:.5rem;padding:.85rem 1.25rem 1.25rem;display:flex}.chat-input{resize:none;border:1px solid var(--hairline);border-radius:var(--radius);font-family:var(--font-text);color:var(--ink);transition:border-color .3s var(--ease);background:0 0;outline:none;flex:1;min-height:2.5rem;max-height:6rem;padding:.65rem .85rem;font-size:.9rem;line-height:1.4}.chat-input::placeholder{color:var(--ink-faint)}.chat-input:focus{border-color:var(--accent)}.chat-send-btn{border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);width:2.5rem;height:2.5rem;color:var(--bg);cursor:pointer;transition:background .3s var(--ease), color .3s var(--ease), opacity .3s var(--ease);flex-shrink:0;place-items:center;display:grid}.chat-send-btn:hover:not(:disabled){color:var(--accent);background:0 0}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}@media (max-width:699px){:root{--header-h:3.75rem}body{font-size:.94rem}a,button{-webkit-tap-highlight-color:#f5f5f014}.header-clock{gap:.5rem}.header-clock svg{width:14px;height:14px}.header-clock .clock-time{font-size:.92rem}.clock-zone{font-size:.62rem}.menu-trigger{padding:.5rem .85rem;font-size:.68rem}.menu-link{padding:.95rem 0;font-size:1.6rem}.section{padding-block:3.25rem}.sec-head{gap:1.1rem;margin-bottom:1.75rem}.sec-title{letter-spacing:-.035em;font-size:clamp(1.6rem,7.2vw,1.85rem);line-height:1.12}.sec-lead{margin-top:.85rem;font-size:.9rem;line-height:1.65}.eyebrow{letter-spacing:.18em;font-size:.66rem}.btn{font-size:.875rem}.hero{padding-top:calc(var(--header-h) + var(--safe-top) + 1.5rem);padding-bottom:2.25rem}.hero-inner{gap:1.25rem}.hero-portrait{aspect-ratio:734/980;width:min(8.5rem,38vw);overflow:hidden}.hero-portrait-img{width:176.703%;max-width:none;height:auto;margin-top:-43.4605%;margin-left:-38.6921%;-webkit-mask-image:linear-gradient(#000 82%,#0000 100%);mask-image:linear-gradient(#000 82%,#0000 100%)}.hero .status{margin-bottom:.75rem;font-size:.8rem}.hero-name{letter-spacing:-.045em;font-size:clamp(2.25rem,10.5vw,2.6rem);line-height:1.02}.hero-role{margin-top:.6rem;font-size:.95rem;line-height:1.5}.hero-actions{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.4rem;display:grid}.hero-actions .btn,.contact-actions .btn{justify-content:center;min-height:2.75rem}.hero-socials{gap:0;margin-top:1rem}.hero-socials a{justify-content:start;width:auto;min-width:2.75rem;height:2.75rem;padding-right:1.1rem;font-size:1.45rem}.tabs{margin-inline:calc(var(--pad-x) * -1);padding-inline:var(--pad-x);scrollbar-width:none;flex-wrap:nowrap;gap:1.35rem;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:none;padding-block:.65rem;font-size:.85rem}.tabs--ruled .tab{padding-bottom:.8rem}.toggle-btn{font-size:.85rem}.about-grid{gap:2.25rem}.about-lead{font-size:1rem;line-height:1.7}.about-body{margin-top:.9rem;font-size:.9rem;line-height:1.7}.fact{padding:.85rem 0}.fact dd{font-size:.9rem}.skills{margin-top:2.5rem;padding-top:2rem}.skills-title{font-size:1.02rem}.skills-sub{font-size:.85rem}.skills .tabs{margin-top:1rem}.skills-list{gap:.7rem 1.25rem;margin-top:1.25rem}.skills-list li{gap:.5rem;font-size:.9rem}.skill-icon{width:.95rem;height:.95rem}.exp-grid{gap:2.5rem}.exp-bar{flex-direction:column;align-items:flex-start;gap:.35rem;margin-bottom:.5rem}.timeline-item{border-top:1px solid var(--hairline);grid-template-columns:1fr;gap:0;padding:1.25rem 0}.timeline-year{padding:0;font-size:.78rem}.timeline-body,.timeline-item:last-child .timeline-body{border-left:0;padding:.2rem 0 0}.timeline-org{font-size:1rem;line-height:1.35}.timeline-role{flex-direction:column;gap:.1rem;margin-top:.35rem;font-size:.88rem}.timeline-period{font-size:.78rem}.timeline-bullets li{font-size:.86rem;line-height:1.6}.exp-education .eyebrow{margin-bottom:1rem}.edu-degree{font-size:.98rem}.edu-school{font-size:.86rem}.edu-detail{font-size:.86rem;line-height:1.6}.proj{gap:.9rem;padding:1.5rem 0}.proj-when{font-size:.76rem}.proj-title{margin-top:.35rem}.proj-title button{font-size:1.15rem}.proj-org{margin-top:.3rem;font-size:.82rem}.proj-note{font-size:.78rem}.proj-desc{font-size:.88rem;line-height:1.65}.tech-list{gap:.4rem .85rem}.tech-list li{font-size:.76rem}.proj-actions{gap:.5rem;margin:1rem 0 0}.proj-actions .icon-btn{border:1px solid var(--hairline-strong);border-radius:var(--radius);width:auto;height:2.5rem;color:var(--ink);align-items:center;gap:.45rem;padding:0 .85rem;display:inline-flex}.proj-actions .icon-btn svg{width:15px;height:15px}.icon-btn-label{font-size:.8rem;font-weight:500;display:inline}.search{padding:.55rem 0}.contact-grid{gap:2rem}.contact-lead{margin-top:.9rem;font-size:.92rem}.contact-actions{flex-direction:column;gap:.6rem;margin-top:1.5rem}.contact-actions .btn{width:100%}.contact-where{flex-direction:column;align-items:flex-start;gap:.3rem;margin-top:1.5rem;font-size:.8rem}.contact-where-sep{display:none}.contact-link{padding:.35rem 0;font-size:.88rem}.footer{padding:2.25rem 0 calc(5.5rem + var(--safe-bottom))}.footer-name{font-size:.98rem}.footer-sub{font-size:.84rem}.footer-bottom{flex-direction:column;margin-top:1.75rem;padding-top:1.25rem;font-size:.78rem}.chat-launcher{width:3.25rem;height:3.25rem;right:1rem;bottom:calc(1rem + var(--safe-bottom))}.pm-overlay{align-items:end;padding:0}.pm{border-bottom:0;border-radius:14px 14px 0 0;width:100%;max-height:calc(100svh - 2.5rem)}.pm-close{width:2.75rem;height:2.75rem}.pm-body{padding:1.25rem var(--pad-x) 0}.pm-meta{font-size:.76rem}.pm-title{margin-top:.5rem;font-size:1.45rem}.pm-role{font-size:.88rem}.pm-desc{margin-top:.9rem;font-size:.9rem;line-height:1.65}.pm-label{margin-top:1.4rem}.pm-list li{font-size:.86rem;line-height:1.6}.pm-stack li{font-size:.8rem}.pm-actions{margin:1.25rem calc(var(--pad-x) * -1) 0;padding:.75rem var(--pad-x) calc(.75rem + var(--safe-bottom));background:var(--bg);grid-template-columns:1fr 1fr;display:grid;position:sticky;bottom:0}.pm-actions .btn{justify-content:center;min-height:2.75rem}.pm-actions .btn:only-child{grid-column:1/-1}.chat-input,.search input{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.thumb-skeleton{animation:none}.proj-thumb:hover .thumb-media{transform:none}}@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-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}@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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}
