.Nav_header__Ole0_{position:-webkit-sticky;position:sticky;top:0;z-index:100;background-color:hsla(0,0%,100%,.95);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.Nav_nav__BptBv{display:flex;align-items:center;justify-content:space-between;height:3.5rem;gap:1rem}.Nav_brand__wEZMt{font-weight:600;font-size:.95rem;color:var(--color-text);white-space:nowrap;text-decoration:none}.Nav_brand__wEZMt:hover{color:var(--color-accent);text-decoration:none}.Nav_links__TBJFU{display:flex;gap:1.5rem;flex-wrap:wrap}.Nav_link__zheGr{font-size:.875rem;color:var(--color-text-muted);text-decoration:none;white-space:nowrap}.Nav_link__zheGr:hover{color:var(--color-accent);text-decoration:none}@media (max-width:640px){.Nav_links__TBJFU{display:none}}.Hero_hero__T3Fr4{padding:6rem 0 5rem;border-bottom:1px solid var(--color-border)}.Hero_inner__M_C9y{display:flex;flex-direction:column;gap:.75rem}.Hero_greeting__B_ZAz{font-size:1rem;color:var(--color-text-muted)}.Hero_name__u10qw{font-size:clamp(2rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--color-text)}.Hero_title__Bn2TU{font-size:1.1rem;font-weight:500;color:var(--color-accent)}.Hero_tagline__VAUvl{font-size:1rem;color:var(--color-text-muted);max-width:520px;margin-top:.25rem}.Hero_actions__LI5fP{display:flex;gap:1rem;margin-top:1.25rem;flex-wrap:wrap}.Hero_btnPrimary__c_fC7,.Hero_btnSecondary__dAkGq{display:inline-block;padding:.6rem 1.25rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s}.Hero_btnPrimary__c_fC7{background-color:var(--color-accent);color:#fff}.Hero_btnPrimary__c_fC7:hover{background-color:var(--color-accent-hover);text-decoration:none;color:#fff}.Hero_btnSecondary__dAkGq{background-color:transparent;color:var(--color-text);border:1px solid var(--color-border)}.Hero_btnSecondary__dAkGq:hover{border-color:var(--color-accent);color:var(--color-accent);text-decoration:none}.SectionHeader_wrapper__t2skP{margin-bottom:2.5rem}.SectionHeader_title__h1abC{font-size:1.35rem;font-weight:600;color:var(--color-text);margin-bottom:.6rem}.SectionHeader_line__Fg6p_{width:2.5rem;height:2px;background-color:var(--color-accent);border-radius:2px}.Section_section__GDNTw{padding:4rem 0;border-bottom:1px solid var(--color-border)}.Section_prose__H3NUk{font-size:1rem;color:var(--color-text);line-height:1.8;max-width:620px;white-space:pre-line}.Timeline_list__PhXgD{display:flex;flex-direction:column;gap:2rem}.Timeline_item__yG_SY{display:grid;grid-template-columns:10rem 1fr;grid-gap:1.25rem;gap:1.25rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}.Timeline_item__yG_SY:last-child{border-bottom:none;padding-bottom:0}.Timeline_meta__4mHGL{padding-top:.15rem}.Timeline_period__DYB0P{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap}.Timeline_content__050CN{display:flex;flex-direction:column;gap:.25rem}.Timeline_role__EKUwg{font-size:1rem;font-weight:600;color:var(--color-text)}.Timeline_company__k2ZGD{font-size:.9rem;color:var(--color-text-muted)}.Timeline_note__H0skb{font-size:.875rem;color:var(--color-text-muted);margin-top:.25rem}.Timeline_bullets__Ok4z_{list-style:disc;padding-left:1.1rem;margin-top:.5rem;display:flex;flex-direction:column;gap:.2rem}.Timeline_bullets__Ok4z_ li{font-size:.9rem;color:var(--color-text);line-height:1.6}@media (max-width:540px){.Timeline_item__yG_SY{grid-template-columns:1fr;gap:.4rem}}.Projects_grid__arwPQ{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1.25rem;gap:1.25rem}.Projects_card__Rq8hx{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;background-color:var(--color-surface);display:flex;flex-direction:column;gap:1.25rem;transition:border-color .15s}.Projects_card__Rq8hx:hover{border-color:#c7d2fe}.Projects_cardTop__mD6mI{display:flex;flex-direction:column;gap:.5rem;flex:1 1}.Projects_title__EIH5o{font-size:1rem;font-weight:600;color:var(--color-text)}.Projects_description__x2RD4{font-size:.875rem;color:var(--color-text-muted);line-height:1.65}.Projects_cardBottom__LaYR_{display:flex;flex-direction:column;gap:.75rem}.Projects_tech__f2jRG{display:flex;flex-wrap:wrap;gap:.4rem}.Projects_tag__lO4LY{font-size:.75rem;padding:.2rem .55rem;border-radius:4px;background-color:#e0e7ff;color:#3730a3;font-weight:500}.Projects_links__fmOLN{display:flex;gap:1rem}.Projects_link__AKEne{font-size:.8rem;color:var(--color-accent);text-decoration:none;font-weight:500}.Projects_link__AKEne:hover{text-decoration:underline}.Skills_grid__agZdi{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:2rem;gap:2rem}.Skills_group__rEVCC{display:flex;flex-direction:column;gap:.75rem}.Skills_groupTitle__Tw_ZW{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.Skills_tags__cXvZl{display:flex;flex-wrap:wrap;gap:.4rem}.Skills_tag__gerkt{font-size:.875rem;padding:.3rem .7rem;border-radius:var(--radius);border:1px solid var(--color-border);color:var(--color-text);background-color:var(--color-bg)}.Contact_intro__tvupu{font-size:1rem;color:var(--color-text-muted);margin-bottom:2rem;max-width:480px}.Contact_list__tAs7I{display:flex;flex-direction:column;gap:1rem}.Contact_list__tAs7I li{display:flex;gap:1.5rem;align-items:baseline}.Contact_label__xiovc{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);width:5rem;flex-shrink:0}.Contact_value__pZgrA{font-size:.95rem;color:var(--color-text)}a.Contact_value__pZgrA{color:var(--color-accent)}a.Contact_value__pZgrA:hover{text-decoration:underline}.Footer_footer__UaG1g{padding:2rem 0;border-top:1px solid var(--color-border);margin-top:0}.Footer_inner__ACAek{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.Footer_copy__IbaoR{font-size:.85rem;color:var(--color-text-muted)}.Footer_links__oDyjI{display:flex;gap:1.25rem}.Footer_links__oDyjI a{font-size:.85rem;color:var(--color-text-muted);text-decoration:none}.Footer_links__oDyjI a:hover{color:var(--color-accent)}