@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2?dpl=dpl_6UatxKCc9UvSaYaMUBJp4qx1cCnZ)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/7178b3e590c64307-s.11.cyxs5p-0z~.woff2?dpl=dpl_6UatxKCc9UvSaYaMUBJp4qx1cCnZ)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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2?dpl=dpl_6UatxKCc9UvSaYaMUBJp4qx1cCnZ)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_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2?dpl=dpl_6UatxKCc9UvSaYaMUBJp4qx1cCnZ)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/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2?dpl=dpl_6UatxKCc9UvSaYaMUBJp4qx1cCnZ)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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2?dpl=dpl_6UatxKCc9UvSaYaMUBJp4qx1cCnZ)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_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
.navbar{--nav-bg:#fff;--nav-border:#00000014;--nav-text:#404040;--nav-text-hover:#171717;--nav-accent:#2563eb;--nav-accent-bg:#dbeafe;--nav-icon:#6b7280;z-index:50;background:var(--nav-bg);border-bottom:1px solid var(--nav-border);width:100%;position:sticky;top:0}.navbar__inner{grid-template-columns:1fr auto 1fr;align-items:center;width:100%;max-width:1200px;height:4rem;margin:0 auto;padding:0 1.5rem;display:grid}.navbar__logo{letter-spacing:.02em;color:var(--nav-accent);justify-self:start;font-size:1.125rem;font-weight:700;text-decoration:none}.navbar__items{justify-self:center;align-items:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.navbar__item{position:relative}.navbar__link{color:var(--nav-text);border-radius:.5rem;align-items:center;gap:.25rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.navbar__link:hover{color:var(--nav-text-hover)}.navbar__link.is-active{background:var(--nav-accent-bg);color:var(--nav-accent)}.navbar__trigger{font:inherit;cursor:pointer;background:0 0;border:none}.navbar__caret{transition:transform .18s}.navbar__item--has-dropdown.is-open .navbar__caret{transform:rotate(180deg)}.navbar__item--has-dropdown.is-open .navbar__trigger{color:var(--nav-text-hover)}.navbar__dropdown{background:var(--nav-bg);border:1px solid var(--nav-border);z-index:60;border-radius:.625rem;flex-direction:column;min-width:11rem;padding:.375rem;animation:.14s ease-out navbar-dropdown-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 14px 32px #0000001a}@keyframes navbar-dropdown-in{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.navbar__dropdown-item{color:var(--nav-text);border-radius:.4375rem;padding:.5rem .75rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background-color .12s,color .12s}.navbar__dropdown-item:hover{background:var(--nav-accent-bg);color:var(--nav-accent)}.navbar__actions{justify-self:end;align-items:center;gap:.5rem;display:inline-flex}.navbar__resume{border:1px solid var(--nav-border);color:var(--nav-text);cursor:pointer;background:0 0;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.navbar__resume:hover{color:var(--nav-text-hover);background:#0000000a;border-color:#00000029}.navbar__burger{border:1px solid var(--nav-border);width:2.5rem;height:2.5rem;color:var(--nav-text);cursor:pointer;background:0 0;border-radius:.5rem;flex-direction:column;justify-content:center;gap:.3125rem;padding:0;transition:background-color .15s,border-color .15s;display:none}.navbar__burger:hover{background:#0000000a;border-color:#00000029}.navbar__burger-bar{background:currentColor;border-radius:1px;width:1.125rem;height:2px;margin:0 auto;transition:transform .2s,opacity .2s;display:block}.navbar.is-mobile-open .navbar__burger-bar:first-child{transform:translateY(7px)rotate(45deg)}.navbar.is-mobile-open .navbar__burger-bar:nth-child(2){opacity:0}.navbar.is-mobile-open .navbar__burger-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (max-width:900px){.navbar__inner{grid-template-columns:auto 1fr auto;gap:.5rem;height:3.5rem}.navbar__burger{display:inline-flex}.navbar__items{background:var(--nav-bg);border-bottom:1px solid var(--nav-border);opacity:0;pointer-events:none;flex-direction:column;align-items:stretch;gap:.25rem;padding:.75rem 1rem 1rem;transition:opacity .18s,transform .18s;position:absolute;top:100%;left:0;right:0;transform:translateY(-8px);box-shadow:0 14px 24px #00000014}.navbar.is-mobile-open .navbar__items{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar__item{width:100%}.navbar__link{justify-content:space-between;width:100%;padding:.625rem .75rem;font-size:.9375rem}}@media (max-width:480px){.navbar__resume span,.navbar__resume{font-size:.8125rem}.navbar__resume{padding:.4375rem .625rem}}
.footer{--footer-text:#fff9;--footer-text-strong:#ffffffd9;--footer-border:#ffffff14;--footer-bg:#ffffff05;--footer-accent:#93c5fd;--footer-accent-bg:#3b82f61f;--footer-accent-border:#3b82f673;border-top:1px solid var(--footer-border);color:var(--footer-text);padding:1.75rem 1.5rem;font-size:.875rem}.footer__container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.5rem;width:100%;max-width:1200px;margin:0 auto;display:flex}.footer__copy{flex-wrap:wrap;align-items:center;gap:.4375rem;margin:0;display:inline-flex}.footer__heart{align-items:center;line-height:0;display:inline-flex}.footer__links{flex-wrap:wrap;align-items:center;gap:.625rem;display:inline-flex}.footer__link,.footer__top{border:1px solid var(--footer-border);background:var(--footer-bg);color:var(--footer-text-strong);cursor:pointer;border-radius:.5rem;align-items:center;gap:.4375rem;padding:.4375rem .8125rem;font-family:inherit;font-size:.8125rem;font-weight:500;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.footer__link:hover,.footer__top:hover{background:var(--footer-accent-bg);border-color:var(--footer-accent-border);color:var(--footer-accent)}.footer__top svg{transition:transform .2s}.footer__top:hover svg{transform:translateY(-2px)}.footer__link:focus-visible,.footer__top:focus-visible{outline:2px solid var(--footer-accent-border);outline-offset:2px}@media (max-width:768px){.footer__container{text-align:center;justify-content:center}}@media (max-width:560px){.footer{padding:1.5rem 1.25rem}.footer__link span{display:none}.footer__link{padding:.5rem}}@media (prefers-color-scheme:light){.footer{--footer-text:#000000a6;--footer-text-strong:#000000d9;--footer-border:#00000014;--footer-bg:#00000005;--footer-accent:#2563eb;--footer-accent-bg:#2563eb14;--footer-accent-border:#2563eb73}}
@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-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-ease:initial}}}@layer theme{:root,:host{--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-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,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}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.contents{display:contents}.flex{display:flex}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.flex-1{flex:1}.resize{resize:both}.flex-col{flex-direction:column}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-background{background-color:var(--background)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--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)}.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,)}.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,)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}html{scroll-behavior:smooth;scroll-padding-top:4rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@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-ease{syntax:"*";inherits:false}
