.login_wrapper__SZmTq{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--bg2)}.login_card__W3NQE{display:flex;flex-direction:column;align-items:center;gap:24px;padding:48px 40px;background-color:var(--bg1);border-radius:8px;max-width:360px;width:100%;text-align:center}.login_title__JDEoN{font-family:var(--dm-serif-display);font-size:1.5rem;color:var(--text);margin:0}.login_subtitle__AIZDV{color:var(--text-secondary);font-size:.9rem;margin:0}.button_button_wrapper__dcn58{width:fit-content;border-radius:3px}.button_formLink__Qb4gh{background-color:transparent}.button_button___l81C{overflow:hidden;position:relative}.button_button___l81C .button_link__fRmAL{position:relative;display:block;overflow:hidden;width:fit-content;padding:16px 40px;border-radius:3px;font-weight:var(--fw-600);text-transform:uppercase;text-decoration:none}.button_signout_button__zpPA_{display:flex;align-items:center;gap:8px;padding:12px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;font-family:inherit;font-size:inherit}.button_signout_button__zpPA_:hover{background-color:var(--accent2);color:var(--text)}.button_powericon__fz1iP{font-size:1.1rem}.button_dash_button__BWezl svg{vertical-align:middle}.button_solid__8xNp8{border:none;background-color:var(--cta)}.button_solid__8xNp8 .button_link__fRmAL{color:white}[data-theme=dark] .button_solid__8xNp8 .button_link__fRmAL{color:var(--text-reverse)}.button_outline__x13N_{background-color:unset;border:2px solid var(--cta)}.button_outline__x13N_ .button_link__fRmAL{color:var(--cta)}.button_button_wrapper__dcn58 span{position:absolute;display:block;width:0;height:0;border-radius:50%;background-color:var(--text-secondary);transition:width .4s ease-in-out,height .4s ease-in-out;transform:translate(-50%,-50%)}.button_link__fRmAL:hover{color:var(--text-reverse)}.button_button_wrapper__dcn58:hover span{width:225%;height:562.5px}.button_button_wrapper__dcn58:hover{border-color:var(--text-secondary)}.button_button_wrapper__dcn58:active{background-color:var(--cta);border:none}.featured_right_column__446Ri{order:0;margin-bottom:80px}.featured_hero__SSKxV{display:grid;justify-items:center;align-items:center}.featured_hero_mockup__DPYfO{width:100%;max-width:750px;height:auto;z-index:3}.featured_hero_mockup__DPYfO img{width:100%;height:auto}.featured_hero_bg__JX5Bb,.featured_hero_mockup__DPYfO{grid-area:1/1/2/2}.featured_hero_bg__JX5Bb{width:95%;height:95%;z-index:1}.featured_hero_ellipse__O9yN6,.featured_hero_pattern__w5Odh{fill:var(--accent2)}.featured_imgDark__CCZP1{display:none}.featured_imgDark__CCZP1,.featured_imgLight__iD_gp{z-index:2}[data-theme=dark] .featured_imgLight__iD_gp{color-scheme:dark;display:none}[data-theme=dark] .featured_imgDark__CCZP1{color-scheme:dark;display:unset}@media screen and (min-width:768px){.featured_left_column__GIywn{order:0}.featured_right_column__446Ri{order:1;margin-bottom:unset}}.hero_hero__ro1dK{background-color:var(--bg2);padding-bottom:50px}.hero_hero__ro1dK>.hero_heroContainer__YiHoN{display:grid;grid-template-columns:100%;align-items:center}.hero_left_column__oQ0ZN{width:100%;order:1}.hero_intro__bnuff{font-family:var(--red-hat-display);font-size:var(--rem-48px);font-weight:var(--fw-400);line-height:var(--rem-64px);text-transform:uppercase}.hero_greeting__knWXc{font-family:var(--dm-serif-display);font-size:var(--rem-80px);font-style:italic;text-transform:none;color:var(--accent1)}.hero_pronunciation__hEjDX{font-size:var(--rem-16px);font-style:italic;margin:0;padding:0}.hero_intro_text__1cRTJ{max-width:420px}.hero_intro_text__sub__no8a4{font-style:italic}@media screen and (min-width:768px){.hero_hero__ro1dK>.hero_heroContainer__YiHoN{grid-template-columns:40% 60%}}.container_role__XvKZL{flex-wrap:wrap}.container_projects__TDIaz{flex-direction:column;align-items:center;row-gap:60px}.container_about-role__W3q6H{position:relative;z-index:-1}.container_about-origin__D5K_K,.container_about-role__W3q6H{justify-content:center;align-items:center}.container_about-skills__LProi{flex-direction:column;row-gap:40px}.container_collab-cta__rpcsm{flex-direction:column;align-items:center}.collabcta_collab_cta__iWH4n{margin-top:100px}.collabcta_display3___nrj3{text-align:center;max-width:20ch}.collabcta_cta_text__3prwj{max-width:40ch}.collabcta_ctas__4duVg{display:flex;flex-wrap:wrap;justify-content:center;column-gap:24px}.footer_footer__cdSpz{display:flex;flex-direction:column;width:100%;align-self:stretch;align-items:center;margin-top:64px;margin-bottom:48px}.footer_footer__cdSpz p{text-align:center;padding:0;margin:0;font-size:14px}.footer_icons__dFvOA{display:flex;justify-content:center;svg.footer_icon__NGJSa{height:2em;width:auto;padding:var(--rem-16px);color:var(--text-secondary)}}.navtext_navItem__S7g7L{letter-spacing:.04em;list-style:none}.navtext_navText__X3YCx{color:var(--text);text-decoration:none;padding:var(--p-base)}.navtext_navText__X3YCx:hover{color:var(--text-secondary);font-weight:500}.navbar_nav__vYNKX{width:100%;align-self:stretch;justify-content:center;transition:all .8s ease;padding-top:var(--p-32);padding-bottom:1rem;font-size:var(--rem-16px);text-align:left;text-transform:var(--tt-uppercase);color:var(--text);position:-webkit-fixed;position:fixed;top:0;z-index:10}.navbar_nav__vYNKX.navbar_bg2__IdAMc{background-color:transparent}.navbar_nav__vYNKX.navbar_white__mF6sA{background-color:var(--bg1)}.navbar_container__amj3E{justify-content:space-between;padding:0 6rem}.navbar_logoName__GK6pI,.navbar_navItems__hhR9y,.navbar_navList__nQSvn,.navbar_nav__vYNKX{display:flex;flex-direction:row}#navbar_logo__iOvVW{width:1.75rem;height:auto;object-fit:cover}.navbar_logo_path___Rgoq{fill:var(--text);stroke-width:0px}.navbar_logoName__GK6pI{text-decoration:none;width:fit-content;align-items:center;justify-content:center;gap:var(--gap-24);color:inherit}.navbar_navList__nQSvn{padding-inline-start:0;gap:16px}.navbar_themeToggle__AzRU_{position:relative}.navbar_navItems__hhR9y{gap:32px}.navbar_mobile_icon__9kwlM{display:none}.navbar_nav__vYNKX button{outline:none;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;cursor:pointer;background:transparent;fill:var(--text);stroke:var(--text)}@media screen and (max-width:1280px){.navbar_container__amj3E{padding:0 2rem}}@media screen and (max-width:1180px){.navbar_logoName__GK6pI{align-items:center;justify-content:flex-start}.navbar_container__amj3E,.navbar_nav__vYNKX{align-items:center;justify-content:space-between;gap:var(--gap-0)}}@media screen and (max-width:980px){.navbar_nav__vYNKX{display:flex;box-sizing:border-box}.navbar_navItems__hhR9y{display:none;flex-direction:column;align-self:normal;justify-content:flex-start;gap:unset}.navbar_mobile_icon__9kwlM{display:block}.navbar_mobile_icon__9kwlM svg{font-size:var(--rem-36px)}.navbar_mobile_icon__9kwlM.navbar_icon_open__DEkhx{z-index:11}.navbar_navItems__hhR9y.navbar_menu_open__ewqPR{display:flex;min-width:260px;max-width:280px;height:100%;margin-right:0;padding:20px;position:fixed;top:0;right:0;background:var(--accent2);transition:.3s ease-in-out;opacity:100%;z-index:10}.navbar_navItems__hhR9y.navbar_menu_open__ewqPR .navbar_navList__nQSvn{flex-direction:column;text-align:center;justify-content:center;order:1;flex:1 1;gap:32px}.navbar_eprisRichardson__QZkRg{display:none}}.recentprojects_heading__Z9_v1{text-align:center}.recentprojects_project_list__kFIVd{display:flex;flex-wrap:wrap;justify-content:space-around;gap:54px}.recentprojects_project_list__kFIVd a{text-decoration:none}.recentprojects_project__tCf4L{display:flex;align-items:center;flex-direction:column;width:100%;overflow:hidden;border-radius:10px;background-color:var(--color-dun);color:var(--color-jet);text-align:center}.recentprojects_faded_image__URgJX{position:relative;display:inline-block;color:var(--color-dun);width:80%;max-width:380px}.recentprojects_faded_image__URgJX:after{content:"";position:absolute;display:block;top:0;left:0;width:100%;height:100%;border-radius:10px;border-collapse:separate;box-shadow:inset 0 -60px 40px -16px}.recentprojects_project__tCf4L img{width:100%;height:auto;margin-bottom:-20px}.recentprojects_proj_desc__C8FWo{padding:32px 0;border-radius:10px;.recentprojects_lead_para__zb_aw{font-weight:700}.recentprojects_language__Src5R,.recentprojects_lead_para__zb_aw{margin:0}.recentprojects_language__Src5R{font-size:var(--rem-16px);font-style:italic}}@media screen and (min-width:768px){.recentprojects_project__tCf4L{width:380px}}.role_left_column__ihOIz{width:100%;margin-bottom:72px;justify-content:center;align-items:center}.role_right_column__ERG3W{width:100%}.role_lucca__ID3t5{width:100%;max-width:375px;height:auto}@media screen and (min-width:768px){.role_left_column__ihOIz{width:50%;align-items:start}.role_right_column__ERG3W{width:50%}.role_lucca__ID3t5{width:100%}}@media (min-width:576px){.role_container__FhjZv{align-items:center}.role_lucca__ID3t5{max-width:unset}.role_left-column__JwN75{margin-bottom:unset}}.navbar_headerContainer__lQN7l{position:relative;display:flex;align-items:center;min-height:48px;padding:16px}.navbar_title__ouF33{font-family:var(--dm-serif-display);font-size:1.1rem;color:var(--text)}@media (min-width:600px){.navbar_headerContainer__lQN7l{min-height:48px;padding-left:24px;padding-right:24px}}.layout_wrapper__I_ojA{display:flex}.layout_header__tXjXa{box-shadow:none;background-image:none;display:flex;flex-direction:column;width:100%;box-sizing:border-box;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;color:inherit;background-color:var(--bg1);transition:box-shadow .3s cubic-bezier(.4,0,.2,1)}.layout_nav__Js5M5{width:0}.layout_content__XH0pm{margin-top:88px;background-color:var(--bg2);min-width:1%;width:100%;min-height:calc(-128px + 100vh);flex-grow:1;margin-right:20px;margin-left:0;padding:20px;border-radius:8px 8px 0 0;transition:margin .4s cubic-bezier(0,0,.2,1)}@media (min-width:900px){.layout_nav__Js5M5{flex-shrink:0;width:260px}.layout_content__XH0pm{width:calc(100% - 260px)}}.navlinks_navLinks__7V9pD{margin-top:12px;flex:1 1}.navlinks_navLink__bw_lq{-webkit-tap-highlight-color:transparent;background-color:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;appearance:none;display:flex;flex-grow:1;justify-content:flex-start;align-items:center;min-width:0;box-sizing:border-box;text-align:left;color:var(--text-secondary);z-index:1201;padding:10px 16px 10px 24px;outline:0;border:0 initial;border-color:initial;border-image:initial;margin:0 0 4px;text-decoration:none;transition:background-color .15s cubic-bezier(.4,0,.2,1);border-radius:8px;gap:20px}.navlinks_navLink__bw_lq.navlinks_active__3oT6Q,.navlinks_navLink__bw_lq:hover{background-color:var(--accent2);color:var(--text)}ul.navlinks_navLinks__7V9pD{padding-inline-start:0}.navlinks_navLinks__7V9pD li{list-style:none}.navlinks_linkIcon__QJlFq{display:inline-flex;align-items:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;padding:0;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:middle;appearance:none;text-decoration:none;color:inherit;border-radius:8px}.navlinks_linkName__NZu57{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px}.sidebar_sidebar__yoCX5{box-sizing:border-box;flex:0 0 auto;white-space:nowrap}.sidebar_sidebar__yoCX5,.sidebar_sidebar__yoCX5 .sidebar_container__wns_N{width:260px;z-index:1099;overflow-x:hidden;box-shadow:none;border-right:none;background:var(--bg1);transition:width 425ms cubic-bezier(.4,0,.6,1)}.sidebar_container__wns_N{background-color:var(--bg1);color:var(--text-secondary);box-shadow:none;background-image:none;overflow-y:auto;display:flex;flex-direction:column;height:100%;z-index:1200;position:fixed;top:0;left:0;transition:box-shadow .3s cubic-bezier(.4,0,.2,1);flex:1 0 auto;outline:0;border-right:1px solid var(--bg1)}.sidebar_titleBar__Rq5oD{display:flex;align-items:center;padding:16px;height:80px}.sidebar_logoName__tItiH{margin:0;text-decoration:none;font-family:var(--dm-serif-display);font-size:1.25rem;color:var(--text)}.sidebar_menu__LNQBe{height:calc(-88px + 100vh);padding-left:16px;padding-right:16px;margin-top:0;display:flex;flex-direction:column;position:relative;height:100%;overflow:hidden!important;overflow-anchor:none;-ms-overflow-style:none;touch-action:auto;-ms-touch-action:auto}.sidebar_menu__LNQBe form{margin-bottom:16px}.projectform_form__d6iAw{display:flex;flex-wrap:wrap;gap:20px;max-width:997px}.projectform_field__w49Dw{display:flex;flex-direction:column;width:100%;gap:6px}.projectform_half_field__T6L5q{width:calc(50% - 10px)}.projectform_third_field__3nX_P{width:calc(33% - 10px)}.projectform_field__w49Dw label{font-size:.85rem;font-weight:var(--fw-600);color:var(--text)}.projectform_hint__zy96g{font-size:.75rem;color:var(--text-secondary)}.projectform_field__w49Dw input[type=text],.projectform_field__w49Dw input[type=url],.projectform_field__w49Dw textarea{font-family:inherit;font-size:.9rem;padding:10px 12px;border-radius:6px;border:1px solid var(--accent2);background-color:var(--bg1);color:var(--text)}.projectform_field__w49Dw textarea{resize:vertical;min-height:90px}.projectform_field__w49Dw textarea[name=skills]{min-height:140px;font-family:monospace}.projectform_checkboxField__aGBHO{flex-direction:row;align-items:center;gap:8px}.projectform_error__oVPWX{font-size:.8rem;color:#c0392b}.projectform_formMessage__QojLC{font-size:.85rem;color:#c0392b}.projectform_actions__JVSsG{display:flex;gap:12px;margin-top:8px}.table_tableContainer__9ylu5 table{width:100%;border-collapse:collapse}.table_tableContainer__9ylu5 thead{height:44px;background-color:var(--accent2);color:var(--text)}.table_tableContainer__9ylu5 thead th{text-align:left;padding:12px;font-weight:var(--fw-600)}.table_tableContainer__9ylu5 tbody td{padding:12px;border-bottom:1px solid var(--accent2);vertical-align:middle}.table_tableContainer__9ylu5 tbody tr:hover{background-color:hsla(from var(--accent2) h s l/20%)}.table_projTitle__29YlC{display:flex;align-items:center;gap:12px}.table_thumb____XYB{display:flex;align-items:center;justify-content:center;height:48px;width:48px;border-radius:50%;overflow:hidden;flex-shrink:0}.table_projLink__QBOor a{display:block;color:var(--text-secondary);font-size:.85rem}.table_projActions__3GK1t{display:flex;align-items:center;gap:12px}.table_badge__0FowV{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;background-color:var(--accent2);color:var(--text)}.aboutrole_contributions__bvebG{max-width:740px;background-color:var(--bg2);padding:40px}.aboutrole_stats__Nu7Kc{display:flex;flex-wrap:wrap;gap:56px;margin-top:32px}.aboutrole_stat__Bl8Pr{display:flex;flex-direction:column}.aboutrole_stat__Bl8Pr .aboutrole_stat_title__alXTq{font-weight:600;flex-grow:1}.aboutrole_stat_num__wOLxC{font-family:var(--dm-serif-text);font-size:var(--rem-64px);line-height:var(--rem-32px);padding:0;margin:0}.aboutrole_stat_desc__ekG3k,.aboutrole_stat_title__alXTq{max-width:12ch}.aboutrole_chevron_bg__bNko4{position:absolute;z-index:-2;height:90%;width:100%;background-image:url(/assets/images/about_role_bg.svg)}@media (max-width:576px){.aboutrole_contributions__bvebG{background-color:unset;padding:0}.aboutrole_chevron_bg__bNko4{display:none}}.origin_left_column__onFqH{padding:40px;border:1px solid var(--accent2);background-color:var(--bg1)}.origin_right_column__y6jiZ{display:none}@media (min-width:992px){.origin_right_column__y6jiZ{margin-left:-35px;z-index:-1;display:block}}.skills_skills_list__tBy2V{display:grid;grid-template-columns:repeat(2,50%);grid-gap:15px;list-style:none;padding-inline-start:0}.skills_skills_list__tBy2V li{margin:5px 0}.skills_tools__PV_tn{display:flex;flex-wrap:nowrap;gap:20px;overflow-x:auto;overflow-y:hidden;max-width:78rem;width:calc(100dvw - 6rem);min-height:150px}.skills_tool__Hfl4l{display:grid;grid-template-rows:32px auto;justify-items:center;width:110px}.skills_tool__Hfl4l svg path{fill:var(--text)}.skills_tool__Hfl4l p{text-align:center;font-size:12px;line-height:24px;text-transform:uppercase;font-weight:600;align-self:self-start}@media (min-width:576px){.skills_tools__PV_tn{flex-wrap:wrap;justify-content:center;gap:48px 10px}.skills_skills_list__tBy2V{grid-template-columns:repeat(3,33.33%)}}@media (min-width:768px){.skills_skills_list__tBy2V{grid-template-columns:repeat(4,25%)}}