@font-face{font-family:InterVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/InterVariable.DiVDrmQJ.woff2)format("woff2")}@font-face{font-family:InterVariable;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_astro/InterVariable-Italic.FCBEiFp6.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100;font-display:swap;src:url(/_astro/Inter-Thin.DzN99i8q.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100;font-display:swap;src:url(/_astro/Inter-ThinItalic.DxehbPeK.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:200;font-display:swap;src:url(/_astro/Inter-ExtraLight.7kXoOaX_.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:200;font-display:swap;src:url(/_astro/Inter-ExtraLightItalic.Ox17i_b0.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/_astro/Inter-Light.14LG-y7V.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:300;font-display:swap;src:url(/_astro/Inter-LightItalic.iBr7p6CH.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/Inter-Regular.COLGFB3M.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:swap;src:url(/_astro/Inter-Italic.Bm_w1qmz.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/_astro/Inter-Medium.CDhBSFyE.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:500;font-display:swap;src:url(/_astro/Inter-MediumItalic.BqDObnQN.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/Inter-SemiBold.BAEEcJ4E.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:600;font-display:swap;src:url(/_astro/Inter-SemiBoldItalic.B7KOJJiL.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/_astro/Inter-Bold.BOs3KVhN.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:700;font-display:swap;src:url(/_astro/Inter-BoldItalic.Cabj1n7x.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/_astro/Inter-ExtraBold.BUaDDWMS.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:800;font-display:swap;src:url(/_astro/Inter-ExtraBoldItalic.efVpd_pq.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:900;font-display:swap;src:url(/_astro/Inter-Black.BJbWHna9.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:900;font-display:swap;src:url(/_astro/Inter-BlackItalic.D3PIgx41.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:100;font-display:swap;src:url(/_astro/InterDisplay-Thin.BT9qaRpT.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:100;font-display:swap;src:url(/_astro/InterDisplay-ThinItalic.DtFR0WUP.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:200;font-display:swap;src:url(/_astro/InterDisplay-ExtraLight.B3-UpUq4.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:200;font-display:swap;src:url(/_astro/InterDisplay-ExtraLightItalic.C8b3Z3Tc.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:300;font-display:swap;src:url(/_astro/InterDisplay-Light.DQj7ly9y.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:300;font-display:swap;src:url(/_astro/InterDisplay-LightItalic.Bbt9QreW.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/InterDisplay-Regular.CHKdHLF4.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:400;font-display:swap;src:url(/_astro/InterDisplay-Italic.Pk5cUfHi.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:500;font-display:swap;src:url(/_astro/InterDisplay-Medium.CYGNL_ty.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:500;font-display:swap;src:url(/_astro/InterDisplay-MediumItalic.hd-DtBFz.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:600;font-display:swap;src:url(/_astro/InterDisplay-SemiBold.-Mm3ZPsY.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:600;font-display:swap;src:url(/_astro/InterDisplay-SemiBoldItalic.KqvXNdTp.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:700;font-display:swap;src:url(/_astro/InterDisplay-Bold.BpCEuk9N.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:700;font-display:swap;src:url(/_astro/InterDisplay-BoldItalic.2f5-4TWO.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:800;font-display:swap;src:url(/_astro/InterDisplay-ExtraBold.CTk6ni5a.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:800;font-display:swap;src:url(/_astro/InterDisplay-ExtraBoldItalic.7uYEMdJ3.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:normal;font-weight:900;font-display:swap;src:url(/_astro/InterDisplay-Black.-Thh5XZM.woff2)format("woff2")}@font-face{font-family:InterDisplay;font-style:italic;font-weight:900;font-display:swap;src:url(/_astro/InterDisplay-BlackItalic.CeOspfgx.woff2)format("woff2")}@font-feature-values InterVariable{@character-variant{cv01:1;cv02:2;cv03:3;cv04:4;cv05:5;cv06:6;cv07:7;cv08:8;cv09:9;cv10:10;cv11:11;cv12:12;cv13:13;alt-1:1;alt-3:9;open-4:2;open-6:3;open-9:4;lc-l-with-tail:5;simplified-u:6;alt-double-s:7;uc-i-with-serif:8;uc-g-with-spur:10;single-story-a:11;compact-lc-f:12;compact-lc-t:13}@styleset{ss01:1;ss02:2;ss03:3;ss04:4;ss05:5;ss06:6;ss07:7;ss08:8;open-digits:1;disambiguation:2;disambiguation-except-zero:4;round-quotes-and-commas:3;square-punctuation:7;square-quotes:8;circled-characters:5;squared-characters:6}}@font-feature-values Inter{@character-variant{cv01:1;cv02:2;cv03:3;cv04:4;cv05:5;cv06:6;cv07:7;cv08:8;cv09:9;cv10:10;cv11:11;cv12:12;cv13:13;alt-1:1;alt-3:9;open-4:2;open-6:3;open-9:4;lc-l-with-tail:5;simplified-u:6;alt-double-s:7;uc-i-with-serif:8;uc-g-with-spur:10;single-story-a:11;compact-lc-f:12;compact-lc-t:13}@styleset{ss01:1;ss02:2;ss03:3;ss04:4;ss05:5;ss06:6;ss07:7;ss08:8;open-digits:1;disambiguation:2;disambiguation-except-zero:4;round-quotes-and-commas:3;square-punctuation:7;square-quotes:8;circled-characters:5;squared-characters:6}}@font-feature-values InterDisplay{@character-variant{cv01:1;cv02:2;cv03:3;cv04:4;cv05:5;cv06:6;cv07:7;cv08:8;cv09:9;cv10:10;cv11:11;cv12:12;cv13:13;alt-1:1;alt-3:9;open-4:2;open-6:3;open-9:4;lc-l-with-tail:5;simplified-u:6;alt-double-s:7;uc-i-with-serif:8;uc-g-with-spur:10;single-story-a:11;compact-lc-f:12;compact-lc-t:13}@styleset{ss01:1;ss02:2;ss03:3;ss04:4;ss05:5;ss06:6;ss07:7;ss08:8;open-digits:1;disambiguation:2;disambiguation-except-zero:4;round-quotes-and-commas:3;square-punctuation:7;square-quotes:8;circled-characters:5;squared-characters:6}}:root{--default-font:InterVariable, sans-serif;--title-font:WhiteRabbit, monospace;--default-background:#122227;--alternative-background:#172e34;--shadow-color:#21383e;--default-foreground:#c3bea1;--accent-color:#499463;--link-color:#79bd8e;--warm-color:#e2b98f;--border-color:#30474a;--glow-color:#4994632e;--card-shadow:0 18px 40px -18px #0009}@font-face{font-family:WhiteRabbit;src:url(data:font/woff2;base64,d09GMgABAAAAAA2kAA0AAAAANNwAAA1LAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GVgCCQhEICtgAwVQLgU4AATYCJAOBVAQgBYVnB4IVG/cno6Kc0qUA/vqAk6tYDqM9TgnVjNcmMsIbWWi+ekQIrTV/DIPIrhOeSBXxslqxUPTSTyMkmTUq1+97YojY4FOVYIvKsui+IrfJnpAE9YA/u72qTMHR9ERVEJ1FNDkhV6qCaP4Jmy8+/+u8cyb+AR5fF/pSWavKYUdzOxKlPqGYprmATxWTDKUQGzxvu/d3KyCMujhw27BtaxPVLu+dvt5J8ojOM50LLR5Wgv7cylz2EZvKfSXY/xeXsLEgiH3tN8TecjezX1QqEkIiJez+5/t1KUGr236o9XD4a2ovtb7TK2xOIawPD2PW231637srr93H1snXdL92dKPV+m5W+qVXHNgaQBXRzDEcBAKDQQAjAYBFtxWWdRIYQ3O+7oqNNYQ2yl9sNHz06wDIX0q8Mn/fAK5grR8ASP17CAG0BnQFQUMQyzUYAA1AOo5getYt1lyzqd+89dzegEFeK5wJIPP7A/x/HwDQt6g3eOytKVDkeQx90WDscmD+B9CB8AP0CpCNbgxSshrbPAJ6m1azWhdUveD+57/AAUSYUMaFVNpY50NMudTWx1z73PfhBEnRDMvxgijJiqrphkleo9lqd7q9/mA4Gk+mMzjFeHenfXnl/Sj93C46BEiOwOUTLCnOZfmRaI5LMcZwcATxYbEsBGPO2+GKkC4uC6XwfxLewYLZnkp9vizySOgMeASPvDkxFB2KPGu+ZRtpNyQjTdIwldqWrBcPDvCeSIM9jsPYSCMSlhsie9lxOM1J6jqupfRTwb0BVoQ6Qhw85VUSjAFpwYLX1EE4xbU/6KGinH6YqQpQBbS2iU5Z2djDUMIJLv8/+NudPdfSOZBakKHjB9V6TIRtKYG1WKoGRBWsgLg6B8K4+UkMvPC5KbeMbQiBGwHI813Qb2oXf1m0sCSVVJmpiHUSuSgfK9/Gzih3U24rX5BaazVqre3MD9qtTTjcqj+3bDSb7W9VHD+8LpA321imtoBs1QD+edZ/7aBXrkoAt9w16IpQn2ZVZZW2aFYtTZq8623rNFubNaHdPjt8B65bamu9Tn1iULQLGhDtkYgCRr9IGrXdqybHzzIFKjK+2y3ZIAyFV6F0Db0SP//iQuf0pvynAwtggcEYHfAF5AJNk/fpX1aIDyTblzGIlwAjRgGsXA3VsEXyMI36wwgB5zRF8TZmeRA62I6KlVDbROGsGvdQ7U4kKETUEZOHY9IUlegDgA/cF6JJkr8nI0suKYhCbuv+Ke+gfDfqwM6NEqCiXvY53ZAtSxKB+JzcgXsSPs/usqSdFcb0fefgKmjWXm9Kv4kml6PBve23+Trm/J6WXFKoiogh4FH0RhzjFGNPZFFzUiIMhLkir7tRHJXEmp79U0RSekTxxUg2ZMQZgWP1AUhsGccwbS8PH7XbMyKVhYEhCECCEkCAqKLxe32PWMyBiFEEo6iBtuCMsk4uiDsVOxYwc9TsK0s0YVLG2RuGycOwMB472g3v7EwR3gZ6iBv3+pprUFXK0XquFs6F1It0abK2auCH1Y3aWmsThLpKIJT3MNduLShiVTX7gyGSoT3IBQgdahe1uNluVk+qssQkRVBkMkAHFTQCwn+WBwlj80AZUARbjTEyIJAazEymzTrWx9ZWm6FELY0zB5F/c2p/amRfyxKqh0EoMVCgzs6Z1QZf+ktTc+cWyzWAHcHqYJfqWfSLaKoQeeCAt7sprJWjKGJXQJ0Tlhm7jKhT5Hapq3rJdHRZOC5aLepmleA+5PMQG7Az4wMge68pFz1fwD7kQG0l6dxGPdYDVn13K71YJLK3zuMjJ4vw6jJSDUrwICPmTOLefky1w9qCoaMxyI5mgqhh3XAeVCr2WqAWRE4fZUVOqYFUgQvvOmzOvLokwjPXpwcuqqozjfxcHasezTjpz24n0pntGRYrdvdxnoqFkd7zSd+SpKAsDRjQ+RiSTIqOKhr7JaiIjpfo+jhtDTNiZU+bj9ii1/kuzeWDh3Hj6+M8g42LI+VtId3o1MORIHjI2YlXHj5SUzyexGVZEtgxFoS3LDQ7xYtFfdgjllHySPWC6oSJ4ZkZRoIo6JvkpdsimZoNbwPFd1vS3WJw7ZMxqONwqPtRwEzvXhqyQnF2lpC3Yr4CqSCtQHHY2K6YLF0A62GY7iF1Hsn3GSHsbWvZ24zopz3ewyGJTzjb993pR24Xz3wFYcdurOJs28M9lf6efXGL49FHGsWjZQ8Huj1yVLy/FJOUX/fE4TZMmWQek6w91OrzXvrLLWE/6cyke8BxYJQMPAb6GnNSR7CODCa6QdqWzs5Adu/uU12KNIUT4TGEVUF45co3b4XBYZ8D3G4Do9b9aRJl4hjin6qg56NPta5fnY0caB3t4/3nBvx39vuQs6yxdl9txtLwypWwFtfW1h7i2wuAVD82Me1KN6PXGpPp4cXYB3XUBlt2rae67q8cufkk+pU6GwtIswaMAYagncSVEDtsks0H0ANE0ZjNdn36Z2r5Pwln/5xZa2ZPdhh7GIIn7vAca3MCUWSSN7IkydhWgkkkfJe0RVD07mEc02mhWqrX+WmT3o715t14r6OFHi4RLufElazsYCXcnCx5mcE/RMy/k7u2j5GMsUdqNzEJKozpCGm120PwPCPcCCvQKoV+XQubiyqOrsYaj2OpcgGGwTTQD46oKhQlaDAoyh3DFIFyTeZ0PHmi6cSf3JG1i1QrBSkknZ+XFXSawbcFNSQ3B3tyrZbYDmxOEytRMEOhyt4n907uYcRuh1LwkdQOaImnZJHs0iEkG5zH7LklXR+7NM5OLBAxMotxWhVRu3uLsYXJD2c5NBsO2Lw9DgrcgNk5ijIUiKgT+KqpQx3PS0GjtzNiwYJc5wAyX+crTzGpP6KeuRikiKlmumauX5Gqx77Ke5kJEgQlSWdqY3BAzJFvU6oPQEHzlIiZXByZ0OZA4stqmV+wMFii4YMBbsTsJ51jY0DbHAmRvypHzVhtSQp25XaO0U06/MYOXXx/HfnI2b557mTYibaOa/+Bm80HnaE99/jTLw/IPn26zyTYidu3j6R8Jas4v1+tTmXNLlviBHR85E5VpkReh8bJCgNifNL3LwvbLF9+4ECy+FoBg3RNMXmbTGL7cbxoZWYzwnxfg4g3nUjd05y40uRBctnt06YrJ8LSeCFaN8QJpxzNwrKf0DeWQ3qJhYjN+zao+5TY3OcADSuVUiX8gJVqYAbJ2NZPxhj3IlZscZI4zX6mZn7NHeDn4bPN0NHm9WO6EXz72qQnBA1eoJwZgz3Q9MqlkSogde0sPeAye3TkQKufFd8BBaxjYAJo8ELXmF9zL8qQJCUt6j/o2WO1wuF4/LEIcgIzYYF+nfmRgjjYHpVOlac+tJ4BUL0phrToWiKiWBSWUQ+dRtlGzypSD7ennKDLpAoqO1VZ45/cGxBMxoLgyikDLDKVDKZeRJQEWmZdHEdBKrJgJaxS59W4XinFKkG/In3hkhn1ZmQVc3WhRvaMuKL3v0ZYmsrCYZFWC3kknuT7J2tb++LacdPzS/NrElscqPIBWZyOOMoF0oAtNJCFU+BBkwOMxqF86dNZFJA67aQbTl6R+muTcpJp92Hu3DAtmRvMmRbFrBYxoujiyYXrjGS2NidYSzpBZdybY1OrDAsq5RHOSBXH+lIWy0aWR360QETbgrOwNPna3wb+q5VW4EhZ6kBVYQvaCMkEVdcSnx2kdxvaSWq6GVWIqCDwTh79P48uLNsBjIDgTpxoadBXS5WKYnSf/D89ySTeEa/cduVGmOeEYQ6vwLTG8JYA25wdnPfwZGdyzMF0fBFRjsHQpHe2LXVKfF8coHiEJ/i+Fzew91ME0R/TUFgW1bLFqzqnGVNPuTgjJhxmtCNdyRX9Z5+IFHjkj9ONqfPYFHI/04Sp9Cu96nNvBOryMXx3J81UjNOTiCWP2ne8urjdlF+bU/MxP3Llm4P/e5fNEAAfGib/0SZLpGIAQJVBVqVmEwBRhWygg08heIwoPgKtVM/YYHSsWeuMHU4rDh9QBnd6p9EsKfJqAU1vWpHJGGg/8zSZ4OlcvINN/QqiNR5WBJrhTUWiB+lVUWhNFnnOwzsqLlqRIz/vYSj5EwpifNYCwAbQrxDdvSuatp5XdAX/iqF7Rp75sFWxdM3nlzfj5oKio5O3i1wqc4N8gCqN5wHwZLwf2fHd/mgm9oQ8xCqhTBuwVakgZ0ryOlKL4z8Xu3iIRdqgHznV+tC/ggD+BI/tHnEVZu1fsbhKq1//u5W+DIK4TO4mpr3WFwjGJPxsrKmzHwRTAtvVqbuKFl/AbyY3Jolo7i5k7foSHR2Uv0WmUBAP5z/y/JqU1nuBxjzGoWh7xH08rj/2A+rqwheJ1ZoPSujseeI4U1r2J+SDX/3GdMlVAGhO81cAUtDoPyD2X4XmWmipldbaaKud9ig0BovDE4gkMoVKozMAJovN4fL4AqFILJHK5AqlSq3R6vQGo8lsYWllbQNHIFFoDBaHJxBJZAqVRmcwLSytrG1s7exZbA6Xx49ODGISy1p536esR95f3i3a3xxSVfup4dCaNAAA)format("woff2");font-display:swap}*{box-sizing:border-box}html{color-scheme:dark;scroll-padding-top:5rem}body{background:radial-gradient(ellipse 70% 45% at 50% 0%, var(--glow-color), transparent 70%), radial-gradient(circle at 1px 1px, #c3bea10d 1px, transparent 0) 0 0 / 24px 24px, var(--default-background);min-height:100svh;color:var(--default-foreground);font-family:var(--default-font);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:1.0625rem;line-height:1.65;display:flex}a{color:var(--link-color);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--warm-color)}a:focus-visible{outline:2px solid var(--link-color);outline-offset:5px;border-radius:2px}em{color:var(--accent-color);font-style:normal}strong{font-weight:650}p{margin:0 0 1rem}img{max-width:100%;height:auto;display:block}main a:not(.card,#splash-images a){background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat,linear-gradient(#79bd8e66,#79bd8e66) 0 100%/100% 1px no-repeat;text-decoration:none;transition:background-size .3s,color .2s}main a:not(.card,#splash-images a):hover{background-size:100% 1px,100% 1px}.skip-link{z-index:10;background:var(--alternative-background);padding:.5rem 1rem;position:absolute;top:-5rem;left:1rem}.skip-link:focus{top:.75rem}#menu{z-index:5;backdrop-filter:blur(12px)saturate(140%);background:#172e34b8;border-bottom:1px solid #30474ab3;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;min-height:3.75rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:550;display:flex;position:sticky;top:0}#menu a{color:var(--default-foreground);border-radius:999px;padding:.4rem .95rem;text-decoration:none;transition:background-color .2s,color .2s}#menu a:hover{color:var(--link-color);background:#79bd8e14}#menu a[aria-current=page]{color:var(--link-color);background:#4994632e;box-shadow:inset 0 0 0 1px #79bd8e40}#container{flex:1;width:min(100% - 3rem,58rem);margin:0 auto;padding-block:3rem 2rem}#title{text-align:center;margin:0 0 2.5rem}#title h1,#splash h1{font-family:var(--title-font);text-transform:uppercase;text-shadow:3px 2px var(--shadow-color), 0 0 24px #79bd8e26;margin:0;font-weight:400;line-height:1.15}#title h1{font-size:clamp(1.8rem,5.2vw,3.5rem)}#title .subtitle{font-family:var(--title-font);margin:.5rem 0 0;font-size:clamp(.85rem,2.2vw,1.3rem)}#title .subtitle em{color:var(--link-color)}.terminal-title:after{content:"_";content:"_" / "";color:var(--link-color);margin-left:.05em}#bio,.feature,.card{background:linear-gradient(var(--alternative-background), var(--alternative-background)) padding-box, linear-gradient(135deg, #79bd8e73, var(--border-color) 45%, #e2b98f59) border-box;border:1px solid #0000}#bio{box-shadow:var(--card-shadow);border-radius:.75rem;grid-template-columns:13rem minmax(0,1fr);align-items:end;gap:2rem;margin-bottom:2.75rem;padding:1.75rem 2rem 0;display:grid;overflow:hidden}#bio>img{filter:drop-shadow(0 10px 18px #00000059);width:13rem}#bio-details{align-self:center;min-width:0;padding-bottom:1.75rem}#bio-details dl{margin:0}#bio-details dt{margin-bottom:.15rem;font-size:.8125rem;font-weight:650}#bio-details dd{margin:0 0 .85rem}#bio-details dd:last-child{margin-bottom:0}.languages{flex-wrap:wrap;gap:.1rem 1rem;display:flex}.contact-links{flex-wrap:wrap;gap:.4rem 1.15rem;margin-top:1.15rem;display:flex}.contact-links a{overflow-wrap:anywhere;align-items:center;gap:.35em;display:inline-flex}.profile-icon{flex:0 0 1em;width:1em;height:1em}#resume{counter-reset:section;max-width:76ch;margin:0 auto}#resume section+section{margin-top:2.75rem}h2{color:var(--link-color);letter-spacing:-.02em;margin:0 0 1rem;font-size:1.4rem;font-weight:650;line-height:1.3}#resume h2{font-family:var(--title-font);letter-spacing:0;align-items:baseline;gap:.6rem;font-size:1.35rem;font-weight:400;display:flex}#resume h2:before{counter-increment:section;content:counter(section, decimal-leading-zero) " /";content:counter(section, decimal-leading-zero) " /" / "";color:var(--warm-color);opacity:.8;font-size:.8em}h3{margin:0 0 .45rem;font-size:1.0625rem;font-weight:650;line-height:1.45}#resume ul{margin:0 0 1rem;padding-left:1.2rem}#resume li{margin-bottom:.6rem;padding-left:.2rem}#resume li::marker{color:var(--accent-color)}.technology-line{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:.9375rem;display:flex}.technology-line strong{font-family:var(--title-font);color:var(--warm-color);font-weight:400}#resume .tags{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}#resume .tags li{border:1px solid var(--border-color);background:#49946314;border-radius:999px;margin:0;padding:.15rem .6rem;font-size:.875rem;line-height:1.5;transition:border-color .2s,color .2s}#resume .tags li:hover{border-color:var(--accent-color);color:var(--link-color)}.feature{box-shadow:var(--card-shadow);border-radius:.75rem;padding:1.5rem 1.75rem 1.6rem}.feature p:last-child{margin-bottom:0}#resume .entries{border-left:1px solid var(--border-color);margin-left:.35rem;padding:0 0 0 1.5rem;list-style:none}#resume .entries>li{margin:0 0 1.15rem;padding:0 0 1.15rem;position:relative}#resume .entries>li:last-child{margin-bottom:0;padding-bottom:0}#resume .entries>li:before{content:"";background:var(--default-background);border:2px solid var(--accent-color);border-radius:50%;width:9px;height:9px;position:absolute;top:.5rem;left:calc(-1.5rem - 5px)}#work-experience+.entries>li:first-child:before{background:var(--accent-color);box-shadow:0 0 0 4px #49946333}.entries p{margin:.35rem 0 0}.entry-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;display:flex}.entry-heading h3{margin:0}.entry-date{font-family:var(--title-font);color:var(--warm-color);white-space:nowrap;font-size:.875rem}.skills{margin:0}.skills>div{border-bottom:1px solid var(--border-color);grid-template-columns:10rem minmax(0,1fr);gap:1.25rem;padding:.8rem 0;display:grid}.skills>div:first-child{padding-top:0}.skills>div:last-child{border:0}.skills dt{font-weight:650}.skills dd{margin:0}.home #container{justify-content:center;align-items:flex-start;padding-top:clamp(2.5rem,7vh,5rem);display:flex}#splash{text-align:center;width:min(100%,48rem)}#splash-images{justify-content:center;align-items:flex-end;gap:1.5rem;padding-inline:2rem;display:flex}#splash-images>a{flex:none;display:block}#splash-images img{filter:drop-shadow(0 14px 22px #0006);width:auto;max-width:none;height:clamp(9rem,29vw,16rem);transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .35s}#splash-images a:hover img,#splash-images a:focus-visible img{filter:drop-shadow(0 20px 26px #00000073)drop-shadow(0 0 18px #79bd8e40);transform:translateY(-6px)rotate(-1.5deg)}#splash-images a:last-child:hover img,#splash-images a:last-child:focus-visible img{filter:drop-shadow(0 20px 26px #00000073)drop-shadow(0 0 18px #e2b98f40);transform:translateY(-6px)rotate(1.5deg)}#splash h1{margin-top:.6rem;font-size:clamp(2.1rem,8.8vw,4.6rem)}.cards{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:3rem;display:grid}.card{color:var(--default-foreground);box-shadow:var(--card-shadow);border-radius:.9rem;flex-direction:column;gap:.6rem;padding:1.5rem 1.6rem;text-decoration:none;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s;display:flex}.card:hover{color:var(--default-foreground);box-shadow:var(--card-shadow), 0 0 0 1px #79bd8e59, 0 0 32px -8px #79bd8e59;transform:translateY(-4px)}.card-mandy:hover{box-shadow:var(--card-shadow), 0 0 0 1px #e2b98f59, 0 0 32px -8px #e2b98f59}.card:focus-visible{outline-offset:4px;border-radius:.9rem}.card-kicker{font-family:var(--title-font);text-transform:uppercase;letter-spacing:.08em;color:var(--link-color);font-size:.8125rem}.card-mandy .card-kicker{color:var(--warm-color)}.card-title{letter-spacing:-.01em;color:#e4e0c8;font-size:1.25rem;font-weight:650;line-height:1.3}.card-text{font-size:.9375rem}.card-cta{color:var(--link-color);margin-top:auto;padding-top:.4rem;font-size:.9375rem;font-weight:550}.card-mandy .card-cta{color:var(--warm-color)}.card-cta span{transition:transform .25s;display:inline-block}.card:hover .card-cta span{transform:translate(4px)}.card-mandy:hover .card-cta span{transform:translate(3px,-3px)}.bnb-logo{width:11rem;max-width:100%;height:auto;margin:.1rem 0 .2rem}#footer{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.5rem;font-size:.8125rem;display:flex}#footer p{margin:0}.footer-links{gap:.5rem;display:flex}.footer-links a{border:1px solid var(--border-color);width:2.25rem;height:2.25rem;color:var(--default-foreground);border-radius:50%;place-items:center;transition:color .2s,border-color .2s,transform .2s;display:grid}.footer-links a:hover{color:var(--link-color);border-color:var(--accent-color);transform:translateY(-2px)}.footer-links .profile-icon{width:1rem;height:1rem}@media (width<=600px){#menu{gap:.15rem;padding-inline:.5rem;font-size:.875rem}#menu a{padding-inline:.65rem}#container{width:calc(100% - 2rem);padding-top:2rem}#title{margin-bottom:1.75rem}#bio{grid-template-columns:minmax(0,1fr);margin-bottom:2rem;padding:1.25rem}#bio>img{display:none}#bio-details{padding-bottom:0;font-size:.9375rem}.contact-links{gap:.35rem 1rem}#resume section+section{margin-top:2.25rem}.feature{padding:1.25rem}.skills>div{grid-template-columns:1fr;gap:.4rem}#splash-images{gap:.75rem;padding-inline:1rem}.cards{grid-template-columns:minmax(0,1fr);margin-top:2.25rem}}@media print{html{color-scheme:light}@page{margin:16mm}body{color:#222;background:#fff;min-height:0;font-size:10pt;line-height:1.45;display:block}#menu,.skip-link,#footer{display:none}#container{width:100%;max-width:none;padding:0}#title{margin-bottom:1.25rem}#title h1{font-family:var(--default-font);text-transform:none;text-shadow:none;font-size:25pt}#title h1:after{content:none}#title .subtitle{font-family:var(--default-font);font-size:11pt}#bio{box-shadow:none;background:0 0;border:0;border-bottom:1px solid #aaa;border-radius:0;margin-bottom:1.25rem;padding:0 0 1rem;display:block}#bio>img{display:none}#bio-details{font-size:inherit;padding:0}#bio-details dl{grid-template-columns:5rem 1fr;gap:.25rem 1rem;display:grid}#bio-details dd{margin:0}#resume{max-width:none}#resume section+section{margin-top:1.25rem}h2,#resume h2{font-family:var(--default-font);margin-bottom:.6rem;font-size:14pt;font-weight:650}#resume h2:before{content:none}h3{font-size:11pt}h2,h3,.entry-heading{break-after:avoid}p,li{orphans:3;widows:3}.entries>li,.skills>div{break-inside:avoid}a,h2,em,#title .subtitle em,.entry-date,.technology-line strong{color:#245637}main a:not(.card){background:0 0;text-decoration:underline}.feature{box-shadow:none;background:0 0;border:0;padding:0}#resume .entries{border:0;margin:0;padding:0}#resume .entries>li:before{content:none}.entry-date{font-family:var(--default-font)}.technology-line strong{font-family:var(--default-font);font-weight:650}.technology-line strong:after{content:":"}#resume .tags{display:inline}#resume .tags li{font-size:inherit;background:0 0;border:0;padding:0;display:inline}#resume .tags li+li:before{content:", "}.contact-links{margin-top:.6rem}.technology-line,.entry-date{font-size:9pt}.skills>div{grid-template-columns:9rem 1fr;padding-block:.4rem}}@media (prefers-reduced-motion:no-preference){.terminal-title{animation:.9s linear both flicker-in}.terminal-title:after{animation:1.1s step-end infinite blink}.typing{white-space:nowrap;vertical-align:bottom;animation:1.4s steps(34,end) .5s both typing;display:inline-block;overflow:hidden}.cards>.card{animation:.6s cubic-bezier(.2,.8,.2,1) both rise}.cards>.card:first-child{animation-delay:.35s}.cards>.card:nth-child(2){animation-delay:.5s}@supports (animation-timeline:view()){#resume>section{animation:linear both rise view();animation-range:entry entry 60%}}}@keyframes blink{50%{opacity:0}}@keyframes typing{0%{width:0}to{width:34ch}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes flicker-in{0%{opacity:0}10%{opacity:.6}15%{opacity:.1}30%{opacity:.85}35%{opacity:.3}50%{opacity:1}55%{opacity:.55}70%,to{opacity:1}}
