@font-face{font-family:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.19g-lkcx7iw64.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0-95eo-012xnf.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:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.19g-lkcx7iw64.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-weight:500;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0-95eo-012xnf.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:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.19g-lkcx7iw64.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0-95eo-012xnf.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:Figtree;font-style:normal;font-weight:700;font-display:swap;src:url(../media/400bf8aa837fcb7e-s.19g-lkcx7iw64.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f7aa21714c1c53f8-s.p.0-95eo-012xnf.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:Figtree Fallback;src:local(Arial);ascent-override:94.32%;descent-override:24.82%;line-gap-override:0.0%;size-adjust:100.72%}.figtree_878e29a7-module__OFRImG__className{font-family:Figtree,Figtree Fallback;font-style:normal}.figtree_878e29a7-module__OFRImG__variable{--font-body:"Figtree", "Figtree 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-border-style:solid;--tw-font-weight: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-ease:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--radius-xs:.125rem;--radius-md:.375rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:0}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:0}.left-0{left:0}.z-50{z-index:50}.mt-auto{margin-top:auto}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-auto{height:auto}.h-full{height:100%}.w-3\/4{width:75%}.w-fit{width:fit-content}.shrink-0{flex-shrink:0}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-border{border-color:var(--line)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--paper)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-border{background-color:var(--line)}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.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-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.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))}.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)}.whitespace-nowrap{white-space:nowrap}.text-foreground{color:var(--ink)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:.7}.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-xs{--tw-shadow:0 1px 2px 0 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)}.ring-offset-background{--tw-ring-offset-color:var(--paper)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;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-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.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-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[state\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}@media (min-width:40rem){.sm\:max-w-sm{max-width:var(--container-sm)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}@media (hover:hover){a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}:root{--paper:#fdfcf9;--ink:#241e1a;--muted:#89827c;--line:#a0968f3d;--blue:#3974b5;--blue-pale:#e3f0ff;--green:#66ac69;--coral:#dc785f;--coral-pale:#ffe9e3;--ease:cubic-bezier(.16,1,.3,1)}@supports (color:lab(0% 0 0)){:root{--paper:lab(98.8565% .107378 1.52054);--ink:lab(11.7989% 2.42233 3.85784);--muted:lab(54.7367% 2.04891 4.01186);--line:lab(62.8504% 2.56988 5.0208/.24);--blue:lab(47.1808% -2.84714 -41.1955);--blue-pale:lab(94.1548% -2.18809 -9.01641);--green:lab(64.3632% -33.6039 27.3093);--coral:lab(61.806% 38.0008 31.7083);--coral-pale:lab(93.9392% 9.76169 7.83945)}}*{box-sizing:border-box;border-color:var(--line)}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-body),sans-serif;letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:500}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--blue);outline-offset:.25rem}::selection{background:var(--blue-pale)}.page-progress{z-index:20;background:linear-gradient(90deg,var(--blue),var(--coral));transform-origin:0;height:3px;position:fixed;inset:0 0 auto}.cv-shell{width:min(920px,100% - 60px);margin:0 auto;padding:clamp(8rem,13vw,10rem) 0 2.5rem}.cv-hero{grid-template-columns:1fr 1fr;min-height:430px;margin-bottom:clamp(7rem,12vw,9rem);display:grid}.hero-contact{flex-direction:column;align-items:flex-start;gap:.45rem;font-size:.9375rem;font-weight:600;line-height:1.1;display:flex}.hero-contact a{text-underline-offset:.18rem;text-decoration:underline}.hero-intro{flex-direction:column;gap:2.5rem;display:flex}.hero-intro>div:last-child>p{color:var(--blue);margin:0 0 .75rem;font-size:.875rem}.hero-intro h1{letter-spacing:-.025em;max-width:26rem;margin:0;font-size:1.35rem;font-weight:600;line-height:1.38}.hero-links{gap:1rem;margin-top:1.5rem;display:flex}.hero-links a{text-underline-offset:.2rem;align-items:center;gap:.25rem;font-size:.75rem;text-decoration:underline;transition:color .2s;display:flex}.hero-links a:hover{color:var(--blue)}.hero-links svg{width:.75rem;height:.75rem}.identity-seal{width:190px;height:190px;position:relative}.identity-seal>svg{width:100%;height:100%;animation:12s linear infinite seal-spin}.identity-seal text{fill:var(--ink);letter-spacing:.29em;font-size:.66rem;font-weight:700}.identity-seal>div{background:var(--ink);color:var(--paper);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:32px}.identity-seal>div span{font-size:2rem;font-weight:700}.identity-seal>div small{color:#bdb6b1;color:lab(74.4499% 1.93864 3.15422);font-size:.625rem;font-weight:500}.orbit-dot{border-radius:50%;width:.7rem;height:.7rem;animation:3.6s ease-in-out infinite dot-float;position:absolute}.dot-blue{background:var(--blue);top:45%;left:-.3rem}.dot-coral{background:var(--coral);animation-delay:-1.2s;top:5%;right:.45rem}.dot-green{background:var(--green);animation-delay:-2.4s;bottom:22%;right:-.5rem}.cv-section{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;margin-bottom:clamp(7rem,12vw,9rem);padding-top:1.5rem;display:grid}.cv-section>h2{align-self:start;margin:0;font-size:.875rem;font-weight:600;line-height:1.4;position:sticky;top:30px}.cv-section:nth-of-type(2)>h2{color:var(--blue)}.cv-section:nth-of-type(3)>h2{color:var(--coral)}.cv-section:nth-of-type(4)>h2{color:var(--green)}.section-content{min-width:0}.about-copy strong{margin-bottom:1.25rem;font-size:1.25rem;font-weight:600;line-height:1.3;display:block}.about-copy p{max-width:32rem;margin:0;font-size:1rem;line-height:1.7}.project-entry{border-top:1px solid var(--line);padding:3rem 0}.project-entry:first-child{border-top:0;padding-top:0}.project-topline{color:var(--muted);align-items:center;gap:.75rem;font-size:.75rem;display:flex}.project-topline span:first-child{background:var(--ink);width:1.7rem;height:1.7rem;color:var(--paper);border-radius:50%;place-items:center;font-size:.65rem;display:grid}.project-entry:nth-child(2) .project-topline span:first-child{background:var(--coral)}.project-entry:nth-child(3) .project-topline span:first-child{background:var(--green)}.project-entry h3{max-width:24rem;margin:1.3rem 0 .9rem;font-size:1.5rem;font-weight:600;line-height:1.25}.project-entry>p{max-width:31rem;margin:0;font-size:1rem;line-height:1.65}.project-facts{flex-wrap:wrap;gap:.4rem;margin-top:1.25rem;display:flex}.project-facts span{color:var(--ink);background:#f2eee9;background:lab(94.2044% .916153 2.88153);padding:.35rem .55rem}@supports (color:color-mix(in lab, red, red)){.project-facts span{color:color-mix(in oklch,var(--ink) 75%,transparent)}}.project-facts span{font-size:.6875rem}.project-link{border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:padding .3s var(--ease),color .2s ease;justify-content:space-between;align-items:center;margin-top:1.5rem;padding:.85rem 0;font-size:.75rem;font-weight:600;display:flex}.project-link:hover{color:var(--blue);padding-inline:.5rem}.project-link svg{width:.85rem;height:.85rem}.role{border-top:1px solid var(--line);transition:transform .35s var(--ease);padding:2.5rem 0;position:relative}.role:first-child{border-top:0;padding-top:0}.role:hover{transform:translate(.35rem)}.role:before{content:"";background:var(--line);width:.35rem;height:.35rem;transition:transform .25s var(--ease),background .25s;border-radius:50%;position:absolute;top:2.9rem;left:-1rem}.role:first-child:before{background:var(--coral);top:.4rem}.role:nth-child(2):before{background:var(--blue)}.role:nth-child(3):before{background:var(--green)}.role:hover:before{transform:scale(1.65)}.role-title{grid-template-columns:minmax(0,1fr) 9.5rem;align-items:start;gap:1rem;display:grid}.role h3,.education-list h3{margin:0;font-size:1.25rem;font-weight:600;line-height:1.3}.role-title>span{color:var(--muted);font-size:.875rem;line-height:1.4}.role>p{max-width:31rem;margin:1.35rem 0 0;font-size:1rem;line-height:1.7}.system-graphic,.pipeline-graphic{border:1px solid;margin-top:2rem;padding:1.15rem;overflow:hidden}.system-graphic{background:var(--blue-pale);border-color:var(--blue)}@supports (color:color-mix(in lab, red, red)){.system-graphic{border-color:color-mix(in oklch,var(--blue) 25%,transparent)}}.pipeline-graphic{background:var(--coral-pale);border-color:var(--coral)}@supports (color:color-mix(in lab, red, red)){.pipeline-graphic{border-color:color-mix(in oklch,var(--coral) 25%,transparent)}}.system-heading{color:var(--ink);justify-content:space-between;display:flex}@supports (color:color-mix(in lab, red, red)){.system-heading{color:color-mix(in oklch,var(--ink) 68%,transparent)}}.system-heading{font-size:.6875rem;line-height:1}.system-graphic svg{width:100%;height:auto;margin:.4rem 0;display:block;overflow:visible}.flow-line{fill:none;stroke:var(--blue)}@supports (color:color-mix(in lab, red, red)){.flow-line{stroke:color-mix(in oklch,var(--blue) 40%,var(--paper))}}.flow-line{stroke-width:1.5px;vector-effect:non-scaling-stroke}.system-node rect{fill:var(--paper);stroke:var(--blue)}@supports (color:color-mix(in lab, red, red)){.system-node rect{stroke:color-mix(in oklch,var(--blue) 38%,var(--paper))}}.system-node rect{vector-effect:non-scaling-stroke}.system-node text{fill:var(--ink);font:600 12px var(--font-body);text-anchor:middle;dominant-baseline:middle}.system-node.active rect{fill:var(--blue);stroke:var(--blue)}.system-node.active text{fill:var(--paper)}.signal-sparse{fill:var(--blue)}.signal-dense{fill:var(--coral)}.system-legend{color:var(--ink);gap:1rem;display:flex}@supports (color:color-mix(in lab, red, red)){.system-legend{color:color-mix(in oklch,var(--ink) 65%,transparent)}}.system-legend{font-size:.6875rem}.system-legend span{align-items:center;gap:.3rem;display:flex}.system-legend i{background:var(--blue);border-radius:50%;width:.35rem;height:.35rem}.pipeline-graphic>div:last-child{border-left:1px solid var(--coral);grid-template-columns:repeat(6,minmax(0,1fr));margin-top:1.5rem;display:grid}@supports (color:color-mix(in lab, red, red)){.pipeline-graphic>div:last-child{border-left:1px solid color-mix(in oklch,var(--coral) 25%,transparent)}}.pipeline-graphic>div:last-child span{border-right:1px solid var(--coral);flex-direction:column;gap:.4rem;min-width:0;padding:.55rem;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.pipeline-graphic>div:last-child span{border-right:1px solid color-mix(in oklch,var(--coral) 25%,transparent)}}.pipeline-graphic>div:last-child span{font-size:.7rem}.pipeline-graphic>div:last-child i{color:var(--coral);font-style:normal}.market-graphic{border:1px solid var(--green);background:#e1f5e0;background:lab(94.659% -9.78026 7.61223);margin-top:2rem;padding:1.15rem;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.market-graphic{border:1px solid color-mix(in oklch,var(--green) 28%,transparent)}}.market-graphic svg{width:100%;height:auto;display:block}.market-graphic path{fill:none;stroke:var(--green)}@supports (color:color-mix(in lab, red, red)){.market-graphic path{stroke:color-mix(in oklch,var(--green) 55%,var(--ink))}}.market-graphic path{stroke-width:1.4px;vector-effect:non-scaling-stroke}.market-graphic circle{fill:var(--paper);stroke:var(--green);stroke-width:2px;transform-box:fill-box;transform-origin:50%}.market-graphic circle:nth-of-type(3){fill:var(--green)}.metric-grid{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}.metric-grid>div{background:var(--ink);min-height:152px;color:var(--paper);transition:transform .35s var(--ease);flex-direction:column;justify-content:space-between;padding:1rem;display:flex}.metric-grid>div:nth-child(2){background:var(--blue)}.metric-grid>div:nth-child(3){background:var(--coral)}.metric-grid>div:hover{transform:translateY(-.4rem)}.metric-grid strong{font-size:2rem;font-weight:600}.metric-grid span{color:#efebe4;color:lab(93.0686% .581116 3.77332);font-size:.75rem;line-height:1.3}.education-list>div{border-top:1px solid var(--line);padding:2.5rem 0}.education-list>div:first-child{border:0;padding-top:0}.education-list>div>div{justify-content:space-between;gap:1rem;display:flex}.education-list span{color:var(--muted);white-space:nowrap;font-size:.875rem}.education-list p{margin:1rem 0 0;font-size:1rem;line-height:1.7}.stack-section{align-items:start}.skill-ticker{border-top:1px solid var(--line);overflow:hidden}.skill-ticker:last-child{border-bottom:1px solid var(--line)}.skill-ticker>div{width:max-content;animation:24s linear infinite ticker;display:flex}.skill-ticker span{padding:1rem 1.4rem 1rem 0;font-size:1.25rem;font-weight:600}.skill-ticker span:after{content:"·";margin-left:1.4rem}.skill-ticker:first-child span:after{color:var(--blue)}.skill-ticker:nth-child(2) span:after{color:var(--coral)}.skill-ticker:nth-child(3) span:after{color:var(--green)}.skill-ticker:hover>div{animation-play-state:paused}.contact-section{padding-top:1.5rem}.contact-section h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600}.contact-mail{border-top:1px solid var(--line);border-bottom:1px solid var(--line);transition:color .2s ease,padding .3s var(--ease);justify-content:space-between;align-items:center;padding:1rem 0;font-size:1rem;display:flex}.contact-mail:hover{color:var(--blue);padding-inline:.35rem}.contact-mail svg{width:1rem}.contact-meta{color:var(--muted);grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;font-size:.8125rem;display:grid}.availability{justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.availability i{background:var(--green);border-radius:50%;width:.45rem;height:.45rem;animation:2s ease-out infinite status}.contact-meta>div{grid-column:1/3;gap:1.2rem;display:flex}.contact-meta a{align-items:center;gap:.35rem;transition:color .2s;display:flex}.contact-meta a:hover{color:var(--blue)}.contact-meta svg{width:1rem;height:1rem}.cv-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding-top:1rem;font-size:.75rem;display:flex}@keyframes seal-spin{to{transform:rotate(360deg)}}@keyframes dot-float{50%{transform:translateY(-.55rem)scale(.85)}}@keyframes ticker{to{transform:translate(-50%)}}@keyframes status{50%{box-shadow:0 0 0 .35rem #0000}}@media (max-width:809px){.cv-shell{width:calc(100% - 60px);padding-top:3.5rem}.cv-hero{grid-template-columns:1fr;gap:4rem;min-height:0;margin-bottom:8rem}.hero-intro{gap:2rem}.hero-intro h1,.role h3,.education-list h3,.about-copy strong,.contact-section h3{font-size:1rem}.hero-intro>div:last-child>p,.role-title>span,.education-list span{font-size:.75rem}.cv-section{grid-template-columns:1fr;gap:2rem;margin-bottom:8rem}.cv-section>h2{position:static}.about-copy p,.role>p,.education-list p,.project-entry>p{font-size:.875rem}.project-entry h3{font-size:1.15rem}.role-title{grid-template-columns:1fr 8rem}.role:before{display:none}.role:hover{transform:none}.metric-grid{grid-template-columns:1fr}.metric-grid>div{min-height:130px}.pipeline-graphic>div:last-child{grid-template-columns:repeat(3,1fr)}.system-graphic{padding:.65rem;overflow-x:auto}.system-graphic svg{min-width:520px}.system-legend{flex-wrap:wrap}.skill-ticker span{font-size:1rem}.contact-meta{grid-template-columns:1fr}.availability{justify-content:flex-start}.contact-meta>div{grid-column:1}.identity-seal{width:170px;height:170px}}@media (max-width:430px){.cv-shell{width:calc(100% - 40px)}.role-title{grid-template-columns:1fr}.role-title>span{margin-top:.25rem}.contact-meta>div{gap:.8rem}.contact-meta a span{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.page-progress{display:none}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{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-ease{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
