@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-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.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_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/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-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.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_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"}
@layer theme{:root,:host{--color-white:#fff;--spacing:.25rem;--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{.visible{visibility:visible}.block{display:block}.flex{display:flex}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-full{min-height:100%}.flex-1{flex:1}.flex-col{flex-direction:column}.bg-white{background-color:var(--color-white)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--site-max-width:85rem;--site-gutter:clamp(2.5rem, 4vw, 4rem);--site-section-gap:clamp(2.5rem, 4vh, 4rem);--color-primary:#455ff0;--color-primary-hover:oklch(from var(--color-primary) clamp(0, calc(l - .12), 1) calc(c * 1.02) h);--color-primary-strong:oklch(from var(--color-primary) clamp(0, calc(l - .24), 1) calc(c * .92) h);--color-primary-light:oklch(from var(--color-primary) clamp(0, calc(l + .22), 1) calc(c * .95) h);--color-primary-soft:oklch(from var(--color-primary) .94 calc(c * .16) h);--color-text:#191c1d;--color-muted:#495057;--color-muted-light:#6c757d;--color-border:#dee2e6;--color-border-soft:#e9ecef;--color-surface:#fff;--color-surface-alt:#fafafa;--color-surface-hover:#f8f9fa;--color-disabled:#ccc;--color-skeleton-a:#f0ebe8;--color-skeleton-b:#e8e0db;--color-success:#1e5f3f;--color-success-bg:#e8f6ef;--color-success-border:#b7e0cb;--color-danger:#c0392b;--color-danger-strong:#8b1e1e;--color-danger-bg:#fdecec;--color-danger-border:#f3c0c0;--color-linkedin:#0a66c2;--color-linkedin-light:#5b9bd5;--color-email:#c62828;--color-email-accent:#e53935;--color-email-blue:#1e88e5}.site-container{width:100%;max-width:var(--site-max-width);padding-inline:var(--site-gutter);margin-inline:auto}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background-color:var(--color-surface);color:var(--color-text);font-family:var(--font-geist-sans), sans-serif}.chat-widget{--chat-primary:var(--color-primary);--chat-primary-hover:var(--color-primary-hover);--chat-primary-soft:var(--color-primary-soft);--chat-text:var(--color-text);--chat-muted:var(--color-muted);--chat-border:var(--color-border);--chat-surface:var(--color-surface);--chat-background:var(--color-surface-alt);z-index:9999;font-family:var(--font-geist-sans), sans-serif;color:var(--chat-text);flex-direction:column;align-items:flex-end;gap:1rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.chat-widget__toggle{background-color:var(--chat-primary);width:3.5rem;height:3.5rem;color:var(--color-surface);box-shadow:0 10px 25px var(--color-primary);border:none;border-radius:9999px;justify-content:center;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.chat-widget__toggle{box-shadow:0 10px 25px color-mix(in srgb, var(--color-primary) 35%, transparent)}}.chat-widget__toggle{cursor:pointer;transition:background-color .2s,transform .15s}.chat-widget__toggle:hover{background-color:var(--chat-primary-hover);transform:scale(1.05)}.chat-widget__toggle:active{transform:scale(.95)}.chat-widget__panel{border:1px solid var(--chat-border);background:var(--chat-surface);width:min(400px,100vw - 2rem);height:min(500px,100dvh - 8rem);max-height:calc(100dvh - 8rem);box-shadow:0 20px 40px var(--color-text);border-radius:.75rem;flex-direction:column;display:flex;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.chat-widget__panel{box-shadow:0 20px 40px color-mix(in srgb, var(--color-text) 12%, transparent)}}.chat-widget__header{background-color:var(--chat-primary);color:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex;box-shadow:0 1px 3px #0000001a}.chat-widget__title{letter-spacing:.02em;text-transform:none;color:var(--color-surface);font-size:1.05rem;font-weight:700;line-height:1.25;font-family:var(--font-geist-sans), sans-serif;margin:0;padding-top:0}.chat-widget__header-actions{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.chat-widget__header-btn{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:9999px;justify-content:center;align-items:center;padding:.25rem;transition:background-color .2s;display:flex}.chat-widget__header-btn:hover{background-color:#ffffff2e}.chat-widget__messages{background:var(--chat-background);scroll-behavior:smooth;flex:1;min-height:0;padding:1rem;overflow-y:auto}.chat-widget__messages-anchor{flex-shrink:0;height:1px}.chat-widget__form{border-top:1px solid var(--chat-border);background:var(--chat-surface);align-items:flex-end;gap:.5rem;padding:.75rem;display:flex}.chat-widget__input{border:1px solid var(--chat-border);color:var(--chat-text);background:var(--chat-surface);resize:none;border-radius:.5rem;outline:none;flex:1;min-height:2.5rem;max-height:7.5rem;padding:.625rem;font-family:inherit;font-size:.875rem;line-height:1.4;transition:border-color .2s;overflow-y:auto}.chat-widget__input:focus{border-color:var(--chat-primary)}.chat-widget__send{background-color:var(--chat-primary);color:var(--color-surface);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;border:none;border-radius:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;transition:background-color .2s}.chat-widget__send:hover:not(:disabled){background-color:var(--chat-primary-hover)}.chat-widget__send:disabled{background-color:var(--color-disabled);cursor:not-allowed}.chat-widget__bubble{border-radius:.75rem;max-width:100%;padding:.75rem;font-size:.875rem;line-height:1.45;box-shadow:0 1px 2px #0000000a}.chat-widget__bubble--user{background-color:var(--chat-primary);color:var(--color-surface);border-bottom-right-radius:.25rem}.chat-widget__bubble--server{background-color:var(--chat-surface);color:var(--chat-text);border:1px solid var(--chat-border);border-bottom-left-radius:.25rem}.chat-widget__paragraph{margin:0 0 .5rem}.chat-widget__paragraph:last-child{margin-bottom:0}.chat-widget__list{list-style:revert;margin:0 0 .5rem;padding-left:1.25rem}.chat-widget__list.chat-widget__list--ul{list-style-type:disc}.chat-widget__list.chat-widget__list--ol{list-style-type:decimal}.chat-widget__list:last-child{margin-bottom:0}.chat-widget__list li+li{margin-top:.25rem}.chat-widget__link{color:var(--chat-primary);word-break:break-word;text-decoration:underline}.chat-widget__link:hover{color:var(--chat-primary-hover)}.chat-widget__link--user{color:var(--color-surface)}.chat-widget__link--user:hover{color:#ffffffd9}.chat-widget__message-row{margin-bottom:.75rem;display:flex}.chat-widget__message-group{flex-direction:column;gap:.25rem;max-width:80%;display:flex}.chat-widget__message-row--user{justify-content:flex-end}.chat-widget__message-row--user .chat-widget__message-group{align-items:flex-end}.chat-widget__message-row--server{justify-content:flex-start}.chat-widget__message-row--server .chat-widget__message-group{align-items:flex-start}.chat-widget__timestamp{color:var(--chat-muted);font-size:.6875rem;line-height:1}.chat-widget__typing{align-items:center;gap:.3rem;min-width:3.75rem;padding:.875rem 1rem;display:flex}.chat-widget__typing-dot{background-color:var(--chat-primary);border-radius:50%;width:.5rem;height:.5rem;animation:1.4s ease-in-out infinite both chat-widget-typing}.chat-widget__typing-dot:nth-child(2){animation-delay:.16s}.chat-widget__typing-dot:nth-child(3){animation-delay:.32s}@keyframes chat-widget-typing{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-.35rem)}}@media (max-width:767px){.chat-widget--open .chat-widget__panel{width:100%;max-width:none;height:100%;max-height:none;box-shadow:none;z-index:10000;border:none;border-radius:0;position:fixed;inset:0}.chat-widget__header{padding-top:max(1rem, env(safe-area-inset-top));padding-left:max(1.25rem, env(safe-area-inset-left));padding-right:max(1.25rem, env(safe-area-inset-right))}.chat-widget__form{padding-bottom:max(.75rem, env(safe-area-inset-bottom));padding-left:max(.75rem, env(safe-area-inset-left));padding-right:max(.75rem, env(safe-area-inset-right))}}h1,h2,h3,h4,h5,h6{font-family:var(--font-geist-sans), sans-serif;color:var(--color-primary-light);padding-top:1rem;font-weight:700}h1{font-size:6rem;line-height:5.5rem}h2{font-size:3rem}.subheading{text-transform:uppercase;font-weight:500;font-family:var(--font-geist-sans), sans-serif;font-size:1.35rem}.list-social-icons a{color:var(--color-muted)}.list-social-icons a:hover{color:var(--color-primary)}.list-social-icons a .fa-lg{font-size:1.75rem}.list-icons{font-size:3rem}.list-icons .list-inline-item i:hover{color:var(--color-primary)}#sideNav .navbar-nav .nav-item .nav-link{text-transform:uppercase;font-weight:600}@media (min-width:992px){#sideNav{text-align:center;flex-direction:column;width:17rem;height:100vh;display:flex;position:fixed;top:0;left:0}#sideNav .navbar-brand{margin:auto auto 0;padding:.5rem;display:flex}#sideNav .navbar-brand .img-profile{border:.5rem solid #fff3;max-width:10rem;max-height:10rem}#sideNav .navbar-collapse{flex-grow:0;align-items:flex-start;width:100%;margin-bottom:auto;display:flex}#sideNav .navbar-collapse .navbar-nav{flex-direction:column;width:100%}#sideNav .navbar-collapse .navbar-nav .nav-item,#sideNav .navbar-collapse .navbar-nav .nav-item .nav-link{display:block}}section.resume-section{border-bottom:1px solid var(--color-border);padding-top:5rem!important;padding-bottom:5rem!important}section.resume-section .resume-item .resume-date{min-width:none}@media (min-width:768px){section.resume-section{min-height:100vh}section.resume-section .resume-item .resume-date{min-width:18rem}}@media (min-width:992px){section.resume-section{padding-top:3rem!important;padding-bottom:3rem!important}}.bg-primary{background-color:var(--color-primary)!important}.text-primary{color:var(--color-primary)!important}a{color:var(--color-primary)}a:hover,a:focus,a:active{color:var(--color-primary-hover)}.site-nav{z-index:1000;border-bottom:1px solid var(--color-border-soft);background:var(--color-surface);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.site-nav{background:color-mix(in srgb, var(--color-surface) 92%, transparent)}}.site-nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.site-nav__inner{width:100%;max-width:var(--site-max-width);padding:1rem var(--site-gutter);justify-content:space-between;align-items:center;gap:1rem;margin-inline:auto;display:flex}.site-nav__brand{font-family:var(--font-geist-sans), sans-serif;letter-spacing:.01em;color:var(--color-text);white-space:nowrap;font-size:1.35rem;font-weight:700;line-height:1;text-decoration:none}.site-nav__brand:hover,.site-nav__brand:focus-visible{color:var(--color-primary)}.site-nav__toggle{cursor:pointer;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;display:none}.site-nav__toggle:hover,.site-nav__toggle:focus-visible{background:var(--color-surface-hover)}.site-nav__toggle-lines{width:1.15rem;height:.85rem;position:relative}.site-nav__toggle-lines span{background:var(--color-text);border-radius:9999px;width:100%;height:2px;transition:transform .2s,top .2s;position:absolute;left:0}.site-nav__toggle-lines span:first-child{top:.1rem}.site-nav__toggle-lines span:last-child{top:.65rem}.site-nav--open .site-nav__toggle-lines span:first-child{top:.4rem;transform:rotate(45deg)}.site-nav--open .site-nav__toggle-lines span:last-child{top:.4rem;transform:rotate(-45deg)}.site-nav__menu{align-items:center;display:flex}.site-nav__links{align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.site-nav__link{color:var(--color-muted);align-items:center;padding:.35rem .75rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .15s;display:inline-flex;position:relative}.site-nav__link:after{content:"";background:var(--color-primary);transform-origin:50%;border-radius:9999px;height:2px;transition:transform .2s;position:absolute;bottom:.15rem;left:.75rem;right:.75rem;transform:scaleX(0)}.site-nav__link:hover,.site-nav__link:focus-visible{color:var(--color-text)}.site-nav__link--active{color:var(--color-primary);font-weight:600}.site-nav__link--active:after{transform:scaleX(1)}.site-main{width:100%}.home-page{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.home-page__main{padding-top:clamp(3rem,14vh,6.5rem);padding-bottom:var(--site-section-gap);flex-direction:column;flex:1;justify-content:flex-start;display:flex}.home-page__content{max-width:var(--site-max-width);flex-direction:column;gap:1.5rem;display:flex}.home-page__title{font-family:var(--font-geist-sans), sans-serif;letter-spacing:-.025em;color:var(--color-primary-light);margin:0;padding-top:0;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:600;line-height:1.25}.home-page__intro{text-align:justify;color:var(--color-muted);margin:0;font-size:1.0625rem;line-height:1.75}.home-page__note{color:var(--color-muted-light);margin:0;font-size:.9375rem;line-height:1.6}.home-page__signature{text-align:right;color:var(--color-muted);margin:.5rem 0 0;font-size:1rem;line-height:1.5}.home-page__intro a{font-weight:600}@media (max-width:767px){.site-nav__inner{position:relative}.site-nav__toggle{display:inline-flex}.site-nav__menu{border:1px solid var(--color-border-soft);background:var(--color-surface);box-shadow:0 12px 32px var(--color-text);border-radius:.75rem;padding:.5rem;display:none;position:absolute;top:calc(100% + .5rem);left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-nav__menu{box-shadow:0 12px 32px color-mix(in srgb, var(--color-text) 10%, transparent)}}.site-nav--open .site-nav__menu{display:block}.site-nav__links{flex-direction:column;align-items:stretch;gap:.15rem}.site-nav__link{border-radius:.5rem;padding:.75rem 1rem}.site-nav__link:after{display:none}.site-nav__link--active{background:var(--color-primary-soft)}}@media (prefers-reduced-motion:reduce){.site-nav__toggle-lines span,.site-nav__link,.site-nav__link:after{transition:none}}.contact-page-wrap{background:linear-gradient(165deg, var(--color-surface) 0%, #faf7f5 45%, var(--color-primary-soft) 100%);flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative}.contact-page__bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.contact-page__orb{filter:blur(70px);opacity:.45;border-radius:50%;animation:18s ease-in-out infinite contact-orb-float;position:absolute}.contact-page__orb--1{background:radial-gradient(circle, var(--color-primary) 0%, transparent 70%);width:22rem;height:22rem;top:-6rem;right:-4rem}@supports (color:color-mix(in lab, red, red)){.contact-page__orb--1{background:radial-gradient(circle, color-mix(in srgb, var(--color-primary) 35%, transparent) 0%, transparent 70%)}}.contact-page__orb--2{background:radial-gradient(circle, var(--color-primary-light) 0%, transparent 70%);width:26rem;height:26rem;bottom:10%;left:-8rem}@supports (color:color-mix(in lab, red, red)){.contact-page__orb--2{background:radial-gradient(circle, color-mix(in srgb, var(--color-primary-light) 20%, transparent) 0%, transparent 70%)}}.contact-page__orb--2{animation-delay:-6s}.contact-page__orb--3{background:radial-gradient(circle, var(--color-primary-strong) 0%, transparent 70%);width:14rem;height:14rem;top:40%;right:15%}@supports (color:color-mix(in lab, red, red)){.contact-page__orb--3{background:radial-gradient(circle, color-mix(in srgb, var(--color-primary-strong) 15%, transparent) 0%, transparent 70%)}}.contact-page__orb--3{animation-delay:-12s}@keyframes contact-orb-float{0%,to{transform:translate(0)scale(1)}33%{transform:translate(1.5rem,-1rem)scale(1.05)}66%{transform:translate(-1rem,1.25rem)scale(.95)}}.contact-page{z-index:1;width:100%;padding-block:var(--site-section-gap) clamp(3rem, 6vh, 5rem);flex:1;position:relative}.contact-page__inner{width:100%}.contact-page__header{margin-bottom:2.75rem}.contact-page__eyebrow{background:var(--color-primary);border-radius:9999px;align-items:center;gap:.5rem;margin:0 0 .875rem;padding:.35rem .875rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.contact-page__eyebrow{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}}.contact-page__eyebrow{border:1px solid var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.contact-page__eyebrow{border:1px solid color-mix(in srgb, var(--color-primary) 20%, transparent)}}.contact-page__eyebrow{color:var(--color-primary-strong);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:700}.contact-page__eyebrow:before{content:"";background:var(--color-primary);border-radius:50%;width:.45rem;height:.45rem;animation:2s ease-in-out infinite contact-pulse-dot}@keyframes contact-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.contact-page__header h1{color:var(--color-primary-light);margin:0 0 1rem;padding-top:0;font-size:clamp(2.5rem,6vw,3.75rem);line-height:1.05;position:relative}.contact-page__title-accent{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-soft));border-radius:9999px;width:4.5rem;height:.3rem;margin-top:.75rem;animation:.8s ease-out .3s both contact-accent-grow;display:block}@keyframes contact-accent-grow{0%{opacity:0;width:0}to{opacity:1;width:4.5rem}}.contact-page__subheading{max-width:38rem;color:var(--color-muted);margin:0;font-size:1.125rem;line-height:1.65}.contact-page__layout{grid-template-columns:1fr;gap:2rem;display:grid}.contact-page__form-section,.contact-page__tiles-section{min-width:0}.contact-page__reveal{animation:.7s both contact-fade-up}.contact-page__reveal--delay-1{animation-delay:.15s}.contact-page__reveal--delay-2{animation-delay:.3s}@keyframes contact-fade-up{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.contact-form-card{background:var(--color-surface);border-radius:1rem;padding:clamp(1.25rem,3vw,1.75rem)}@supports (color:color-mix(in lab, red, red)){.contact-form-card{background:color-mix(in srgb, var(--color-surface) 82%, transparent)}}.contact-form-card{border:1px solid var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.contact-form-card{border:1px solid color-mix(in srgb, var(--color-primary) 14%, transparent)}}.contact-form-card{box-shadow:0 4px 6px var(--color-text), 0 16px 40px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.contact-form-card{box-shadow:0 4px 6px color-mix(in srgb, var(--color-text) 3%, transparent), 0 16px 40px color-mix(in srgb, var(--color-primary) 10%, transparent)}}.contact-form-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.contact-form-card__header{border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;padding-bottom:1.25rem}@supports (color:color-mix(in lab, red, red)){.contact-form-card__header{border-bottom:1px solid color-mix(in srgb, var(--color-border) 90%, transparent)}}.contact-form-card__title{font-family:var(--font-geist-sans), sans-serif;color:var(--color-primary-light);margin:0 0 .375rem;padding-top:0;font-size:1.65rem;font-weight:700;line-height:1.2}.contact-form-card__subtitle{color:var(--color-muted);margin:0;font-size:.9375rem}.contact-form{flex-direction:column;gap:1.25rem;display:flex}.contact-form__grid{grid-template-columns:1fr;gap:1.125rem;display:grid}@media (min-width:640px){.contact-form__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-form__field{flex-direction:column;gap:.4rem;display:flex}.contact-form__field--full{grid-column:1/-1}.contact-form__field label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);font-size:.8125rem;font-weight:700}.contact-form__input,.contact-form__textarea{border:1px solid var(--color-border);width:100%;font:inherit;color:var(--color-text);background:var(--color-surface);border-radius:.625rem;padding:.8rem 1rem;transition:border-color .2s,box-shadow .2s,transform .15s}.contact-form__input:hover,.contact-form__textarea:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.contact-form__input:hover,.contact-form__textarea:hover{border-color:color-mix(in srgb, var(--color-primary) 35%, transparent)}}.contact-form__textarea{resize:vertical;min-height:9rem}.contact-form__input:focus,.contact-form__textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary);outline:none}@supports (color:color-mix(in lab, red, red)){.contact-form__input:focus,.contact-form__textarea:focus{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-primary) 14%, transparent)}}.contact-form__input:focus,.contact-form__textarea:focus{transform:translateY(-1px)}.contact-form__input--error,.contact-form__textarea.contact-form__input--error{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger)}@supports (color:color-mix(in lab, red, red)){.contact-form__input--error,.contact-form__textarea.contact-form__input--error{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-danger) 10%, transparent)}}.contact-form__error{color:var(--color-danger);margin:0;font-size:.8125rem}.contact-form__status{border-radius:.625rem;margin:0;padding:.875rem 1rem;font-size:.9375rem;line-height:1.5;animation:.35s contact-fade-up}.contact-form__status--success{color:var(--color-success);background:var(--color-success-bg);border:1px solid var(--color-success-border)}.contact-form__status--error{color:var(--color-danger-strong);background:var(--color-danger-bg);border:1px solid var(--color-danger-border)}.contact-form__submit{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 55%, var(--color-primary-hover) 100%);color:var(--color-surface);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;box-shadow:0 6px 20px var(--color-primary);background-size:200% 200%;border:none;border-radius:.625rem;align-self:flex-start;align-items:center;gap:.5rem;padding:.85rem 1.65rem;font-size:.875rem;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.contact-form__submit{box-shadow:0 6px 20px color-mix(in srgb, var(--color-primary) 35%, transparent)}}.contact-form__submit{transition:background-position .3s,transform .2s,box-shadow .2s}.contact-form__submit:hover:not(:disabled){box-shadow:0 10px 28px var(--color-primary);background-position:100% 0;transform:translateY(-2px)}@supports (color:color-mix(in lab, red, red)){.contact-form__submit:hover:not(:disabled){box-shadow:0 10px 28px color-mix(in srgb, var(--color-primary) 42%, transparent)}}.contact-form__submit:active:not(:disabled){transform:translateY(0)}.contact-form__submit:disabled{background:var(--color-disabled);box-shadow:none;cursor:not-allowed}.contact-tiles__header{margin-bottom:1.25rem}.contact-page__tiles-section{flex-direction:column;display:flex}.contact-tiles__title{font-family:var(--font-geist-sans), sans-serif;color:var(--color-primary-light);margin:2rem 0 .35rem;padding-top:0;font-size:1.5rem;font-weight:700;line-height:1.2}.contact-tiles__subtitle{color:var(--color-muted);margin:0;font-size:.9rem;line-height:1.5}.contact-tiles{grid-template-columns:1fr;grid-auto-rows:1fr;align-items:stretch;gap:1rem;display:grid}@media (min-width:640px){.contact-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-tile{border:1px solid var(--color-border);flex-direction:column;gap:0;height:100%;min-height:16.5rem;padding:1.35rem;display:flex;position:relative}@supports (color:color-mix(in lab, red, red)){.contact-tile{border:1px solid color-mix(in srgb, var(--color-border) 95%, transparent)}}.contact-tile{background:var(--color-surface);border-radius:.875rem}@supports (color:color-mix(in lab, red, red)){.contact-tile{background:color-mix(in srgb, var(--color-surface) 88%, transparent)}}.contact-tile{color:var(--color-text);box-shadow:0 4px 16px var(--color-text);text-decoration:none;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.contact-tile{box-shadow:0 4px 16px color-mix(in srgb, var(--color-text) 5%, transparent)}}.contact-tile{transition:transform .28s cubic-bezier(.34,1.4,.64,1),border-color .25s,box-shadow .28s;animation:.65s both contact-fade-up}.contact-tile__content{flex-direction:column;flex:1;gap:.45rem;min-height:0;display:flex}.contact-tiles>:first-child{animation-delay:.35s}.contact-tiles>:nth-child(2){animation-delay:.45s}.contact-tiles>:nth-child(3){animation-delay:.55s}.contact-tiles>:nth-child(4){animation-delay:.65s}.contact-tile__glow{opacity:0;pointer-events:none;border-radius:50%;width:70%;height:70%;transition:opacity .35s;position:absolute;top:-40%;right:-30%}.contact-tile--linkedin .contact-tile__glow{background:radial-gradient(circle, var(--color-linkedin) 0%, transparent 70%)}@supports (color:color-mix(in lab, red, red)){.contact-tile--linkedin .contact-tile__glow{background:radial-gradient(circle, color-mix(in srgb, var(--color-linkedin) 18%, transparent) 0%, transparent 70%)}}.contact-tile--github .contact-tile__glow{background:radial-gradient(circle, var(--color-text) 0%, transparent 70%)}@supports (color:color-mix(in lab, red, red)){.contact-tile--github .contact-tile__glow{background:radial-gradient(circle, color-mix(in srgb, var(--color-text) 12%, transparent) 0%, transparent 70%)}}.contact-tile--email .contact-tile__glow{background:radial-gradient(circle, var(--color-email-accent) 0%, transparent 70%)}@supports (color:color-mix(in lab, red, red)){.contact-tile--email .contact-tile__glow{background:radial-gradient(circle, color-mix(in srgb, var(--color-email-accent) 18%, transparent) 0%, transparent 70%)}}.contact-tile--resume .contact-tile__glow{background:radial-gradient(circle, var(--color-primary) 0%, transparent 70%)}@supports (color:color-mix(in lab, red, red)){.contact-tile--resume .contact-tile__glow{background:radial-gradient(circle, color-mix(in srgb, var(--color-primary) 22%, transparent) 0%, transparent 70%)}}.contact-tile:before{content:"";opacity:.85;border-radius:.875rem .875rem 0 0;height:3px;transition:height .25s;position:absolute;top:0;left:0;right:0}.contact-tile--linkedin:before{background:linear-gradient(90deg, var(--color-linkedin), var(--color-linkedin-light))}.contact-tile--github:before{background:linear-gradient(90deg, var(--color-text), var(--color-muted))}.contact-tile--email:before{background:linear-gradient(90deg, var(--color-email), var(--color-email-accent), var(--color-email-blue))}.contact-tile--resume:before{background:linear-gradient(90deg, var(--color-primary-hover), var(--color-primary), var(--color-primary-light), var(--color-email-accent))}.contact-tile--resume .contact-tile__label{color:var(--color-primary-light)}.contact-tile--resume .contact-tile__cta{color:var(--color-primary)}.contact-tile--resume:hover,.contact-tile--resume:focus-visible{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.contact-tile--resume:hover,.contact-tile--resume:focus-visible{border-color:color-mix(in srgb, var(--color-primary) 50%, transparent)}}.contact-tile--resume:hover,.contact-tile--resume:focus-visible{box-shadow:0 12px 32px var(--color-primary), 0 0 0 1px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.contact-tile--resume:hover,.contact-tile--resume:focus-visible{box-shadow:0 12px 32px color-mix(in srgb, var(--color-primary) 20%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-primary) 10%, transparent)}}.contact-tile:hover,.contact-tile:focus-visible{color:var(--color-text);border-color:var(--color-primary);transform:translateY(-5px)}@supports (color:color-mix(in lab, red, red)){.contact-tile:hover,.contact-tile:focus-visible{border-color:color-mix(in srgb, var(--color-primary) 45%, transparent)}}.contact-tile:hover,.contact-tile:focus-visible{box-shadow:0 12px 32px var(--color-primary), 0 0 0 1px var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.contact-tile:hover,.contact-tile:focus-visible{box-shadow:0 12px 32px color-mix(in srgb, var(--color-primary) 18%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-primary) 8%, transparent)}}.contact-tile:hover,.contact-tile:focus-visible{outline:none}.contact-tile:hover:before,.contact-tile:focus-visible:before{height:4px}.contact-tile:hover .contact-tile__glow,.contact-tile:focus-visible .contact-tile__glow{opacity:1}.contact-tile:hover .contact-tile__icon-inner,.contact-tile:focus-visible .contact-tile__icon-inner{transform:scale(1.08)rotate(-3deg)}.contact-tile:hover .contact-tile__cta,.contact-tile:focus-visible .contact-tile__cta{transform:translate(3px)}.contact-tile__icon{z-index:1;flex-shrink:0;position:relative}.contact-tile__icon-inner{border-radius:.75rem;justify-content:center;align-items:center;width:3rem;height:3rem;transition:transform .28s cubic-bezier(.34,1.4,.64,1);display:flex}.contact-tile__icon-inner--linkedin{background:#eaf3fb}.contact-tile__icon-inner--github{color:var(--color-text);background:#f4f4f5}.contact-tile__icon-inner--email{background:var(--color-surface);border:1px solid var(--color-border)}@supports (color:color-mix(in lab, red, red)){.contact-tile__icon-inner--email{border:1px solid color-mix(in srgb, var(--color-border) 90%, transparent)}}.contact-tile__icon-inner--resume{background:var(--color-surface);border:1px solid var(--color-border)}@supports (color:color-mix(in lab, red, red)){.contact-tile__icon-inner--resume{border:1px solid color-mix(in srgb, var(--color-border) 90%, transparent)}}.contact-tile__label{z-index:1;letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary);margin:0;font-size:.6875rem;font-weight:700;position:relative}.contact-tile--linkedin .contact-tile__label{color:var(--color-linkedin)}.contact-tile--github .contact-tile__label{color:var(--color-muted)}.contact-tile--email .contact-tile__label,.contact-tile--email .contact-tile__cta{color:var(--color-email)}.contact-tile--email:hover,.contact-tile--email:focus-visible{border-color:var(--color-email-accent)}@supports (color:color-mix(in lab, red, red)){.contact-tile--email:hover,.contact-tile--email:focus-visible{border-color:color-mix(in srgb, var(--color-email-accent) 45%, transparent)}}.contact-tile--email:hover,.contact-tile--email:focus-visible{box-shadow:0 12px 32px var(--color-email-accent), 0 0 0 1px var(--color-email-accent)}@supports (color:color-mix(in lab, red, red)){.contact-tile--email:hover,.contact-tile--email:focus-visible{box-shadow:0 12px 32px color-mix(in srgb, var(--color-email-accent) 16%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-email-accent) 8%, transparent)}}.contact-tile__primary{z-index:1;min-height:2.85rem;font-family:var(--font-geist-sans), sans-serif;color:var(--color-text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1.2rem;font-weight:700;line-height:1.35;display:-webkit-box;position:relative;overflow:hidden}.contact-tile__cycle{z-index:1;flex:1;min-height:2.75rem;position:relative;overflow:hidden}.contact-tile__cycle span{opacity:0;color:var(--color-muted);font-size:.875rem;line-height:1.45;animation:9s infinite contact-tile-cycle-fade;position:absolute;inset:0}.contact-tile__cycle span:first-child{animation-delay:0s}.contact-tile__cycle span:nth-child(2){animation-delay:3s}.contact-tile__cycle span:nth-child(3){animation-delay:6s}@keyframes contact-tile-cycle-fade{0%,6%{opacity:0;transform:translateY(.35rem)}10%,28%{opacity:1;transform:translateY(0)}33%,to{opacity:0;transform:translateY(-.35rem)}}.contact-tile__cta{z-index:1;border-top:1px solid var(--color-border);flex-shrink:0;margin-top:.75rem;padding-top:.5rem;position:relative}@supports (color:color-mix(in lab, red, red)){.contact-tile__cta{border-top:1px solid color-mix(in srgb, var(--color-border) 80%, transparent)}}.contact-tile__cta{color:var(--color-primary);font-size:.8125rem;font-weight:700;transition:transform .2s}.contact-tile--skeleton{pointer-events:none}.contact-tile--skeleton .contact-tile__content{gap:.5rem}.contact-tile__skeleton-icon,.contact-tile__skeleton-line{background:linear-gradient(90deg, var(--color-skeleton-a) 25%, var(--color-skeleton-b) 50%, var(--color-skeleton-a) 75%);background-size:200% 100%;border-radius:.5rem;animation:1.4s ease-in-out infinite contact-skeleton-shimmer}.contact-tile__skeleton-icon{width:3rem;height:3rem}.contact-tile__skeleton-cycle{flex:1;align-items:center;min-height:2.75rem;display:flex}.contact-tile__skeleton-line{width:80%;height:.875rem}.contact-tile__skeleton-line--label{width:35%;height:.6875rem}.contact-tile__skeleton-line--lg{width:75%;height:1.25rem}.contact-tile__skeleton-line--sm{width:45%;margin-top:.75rem;padding-top:.5rem}@keyframes contact-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (min-width:992px){.contact-page__layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:clamp(2rem,3vw,3.5rem)}.contact-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:992px) and (min-height:820px){body:has(.contact-page-wrap){height:100dvh;overflow:hidden}body:has(.contact-page-wrap) .site-main{flex:1;min-height:0;overflow:hidden}.contact-page-wrap{min-height:0;overflow:hidden}.contact-page{flex:1;min-height:0;padding-block:2rem 2.25rem;overflow:hidden}}@media (min-width:992px) and (max-height:819px){.contact-page__layout{grid-template-columns:1fr;gap:clamp(1.75rem,4vh,2.5rem)}}@media (max-width:639px){.contact-tiles{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.contact-page__orb,.contact-page__eyebrow:before,.contact-page__title-accent,.contact-page__reveal,.contact-tile,.contact-form__status{animation:none}.contact-tile,.contact-form__submit,.contact-form__input,.contact-form__textarea,.contact-tile__icon-inner,.contact-tile__cta,.contact-tile__cycle span{opacity:0;transition:none;animation:none;position:static;transform:none}.contact-tile__cycle span:first-child{opacity:1}}
