.top-title{background-color:#145e9a;background-image:linear-gradient(90deg,#084a80 0%,#1767a5 28%,#3189c5 50%,#1767a5 72%,#084a80 100%);border-bottom:1px solid #4f687f;width:100vw;margin-left:50%;position:relative;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 14px #00000047}.top-title:before{z-index:0;content:"";opacity:.08;pointer-events:none;background-image:url(/hexagon-pattern.svg);background-repeat:repeat;background-size:42px 36px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000000b3 28%,#0000 50%,#000000b3 72%,#000 100%);mask-image:linear-gradient(90deg,#000 0%,#000000b3 28%,#0000 50%,#000000b3 72%,#000 100%)}.top-title-main{z-index:1;justify-content:space-between;align-items:center;gap:32px;width:min(1100px,100% - 16px);margin:0 auto;padding:36px 0 20px;display:flex;position:relative}.top-title-copy{min-width:0}.top-title-heading{text-align:left;color:#fff;text-shadow:2px 2px 3px #000000b3;margin:0;font-size:3.5rem;font-weight:800;line-height:1.1}.top-title-subheading{text-align:left;color:#fff;margin:0;padding:0;font-size:1.25rem;font-weight:400;line-height:1.5}.contact-links{z-index:1;text-align:left;background-color:#ffffff2e;border:1px solid #ffffff59;border-radius:6px;justify-content:center;align-items:center;gap:10px 24px;width:fit-content;max-width:calc(100% - 16px);margin:0 auto 16px;padding:8px 16px;display:flex;position:relative}.contact-links-primary,.resume-links{align-items:center;gap:10px 24px;display:flex}.resume-links{color:#000;background-color:#ffffffc7;border:1px solid #ffffffe6;border-radius:6px;flex-direction:column;flex-shrink:0;gap:8px;padding:12px 16px;font-size:.95rem}.resume-links>span{text-align:center;font-size:1.5rem;font-weight:700}.resume-downloads{align-items:center;gap:12px;display:flex}.resume-links a{color:#000;border-radius:4px;align-items:center;gap:6px;font-weight:500;text-decoration:none;display:inline-flex}.resume-links a:focus-visible,.resume-links a:hover{color:#444;background-color:#16476f1f;text-decoration:underline}.contact-links a{color:#fff;border-radius:4px;align-items:center;gap:6px;padding:4px 6px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.contact-links a:hover,.contact-links a:focus-visible{background-color:#ffffff2e}.contact-link-mobile{display:none}.contact-links img,.resume-links img{object-fit:contain;width:1.5em;height:1.5em;display:block}.resume-links img{width:1.5em;height:1.5em}@media (width<=600px){.top-title-heading{white-space:nowrap;font-size:clamp(1.7rem,8vw,2.2rem)}.top-title-subheading{font-size:1.125rem}.top-title-main{flex-direction:column;align-items:flex-start;gap:16px;width:calc(100% - 8px);padding:28px 0 16px;position:relative}.top-title-copy{width:calc(100% - 150px)}.contact-links{width:fit-content;max-width:calc(100% - 8px);margin-bottom:16px;padding:8px}.contact-links-primary{flex-wrap:wrap}.contact-link-full{display:none}.contact-link-mobile{display:inline}.resume-links{flex-direction:column;gap:3px;padding:5px 7px;position:absolute;top:28px;right:0}.resume-links>span{font-size:1rem}.resume-links a{font-size:.75rem}.resume-links img{width:1em;height:1em}.resume-downloads{gap:5px}}:root{--text:#6b6375;--text-h:#08060d;--bg:#d8dadd;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;background-color:#f5f5f4;background-image:repeating-linear-gradient(135deg,#ffffff1f 0 1px,#0000 1px 12px);flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex;box-shadow:-12px 0 18px -14px #000000a6,12px 0 18px -14px #000000a6}body{background-color:var(--bg);background-image:repeating-linear-gradient(135deg,#ffffff29 0 1px,#0000 1px 12px);margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.projects-header{text-align:left;border-bottom:3px solid #637d95;width:min(1000px,100% - 32px);margin:14px auto 20px;padding-bottom:12px}.projects-header h2{color:#243b5a;letter-spacing:0;margin:0;font-size:1.75rem;font-weight:700}@media (width<=600px){.projects-header{width:calc(100% - 32px);margin-top:14px;margin-bottom:16px}.projects-header h2{font-size:1.5rem}}
