.page-module___8aEwW__page{min-height:100vh}.page-module___8aEwW__nav{z-index:10;box-sizing:border-box;background:var(--bg);border-bottom:1px solid var(--rule);justify-content:center;align-items:stretch;gap:2rem;height:4rem;display:flex;position:sticky;top:0}.page-module___8aEwW__navButton{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:3px solid #0000;border-left:none;border-right:none;padding:0 .25rem;font-weight:500;transition:color .15s,border-color .15s}.page-module___8aEwW__navButton:hover{color:var(--ink)}.page-module___8aEwW__active{color:var(--ink);border-bottom-color:var(--accent)}.page-module___8aEwW__navButton:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}@media (prefers-reduced-motion:reduce){.page-module___8aEwW__navButton{transition:none}}
:root{--bg:#f2f4f7;--ink:#16202e;--muted:#5d6878;--rule:#cfd5de;--accent:#a6192e;--accent-ink:#fff;--font:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#131a24;--ink:#eef1f5;--muted:#9aa5b5;--rule:#2f3947;--accent:#e0596b;--accent-ink:#131a24}}body{background:var(--bg);color:var(--ink);font-family:var(--font);margin:0}.homepage{box-sizing:border-box;flex-direction:column;justify-content:center;gap:2.5rem;max-width:40rem;min-height:100vh;margin:0 auto;padding:clamp(2rem,8vw,6rem) 1.5rem;animation:.5s ease-out both homepage-in;display:flex}@keyframes homepage-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.homepage-header{border-left:6px solid var(--accent);padding-left:1.25rem}.homepage-header h1{letter-spacing:-.03em;margin:0;font-size:clamp(2.5rem,9vw,4.5rem);font-weight:700;line-height:1}.location{color:var(--muted);margin:.75rem 0 0;font-size:1.125rem}.email{font-style:normal}.email dl{border-top:1px solid var(--rule);margin:0}.email dl>div{border-bottom:1px solid var(--rule);grid-template-columns:6rem 1fr;gap:1rem;padding:.875rem 0;display:grid}.email dt{color:var(--muted)}.email dd{overflow-wrap:anywhere;margin:0}.email a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:2px}.email a:hover{color:var(--accent)}.personal-links{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.btn{border:1.5px solid var(--ink);color:var(--ink);border-radius:6px;align-items:center;gap:.5rem;padding:.7rem 1.1rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1.1rem;height:1.1rem}.btn:hover{background:var(--ink);color:var(--bg)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn:focus-visible,.email a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media (max-width:30rem){.email dl>div{grid-template-columns:1fr;gap:.125rem}}@media (prefers-reduced-motion:reduce){.homepage{animation:none}.btn{transition:none}}
.about{box-sizing:border-box;max-width:48rem;min-height:100vh;margin:0 auto;padding:clamp(2rem,8vw,6rem) 1.5rem;animation:.5s ease-out both about-in}@keyframes about-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.about-header{border-left:6px solid var(--accent);margin-bottom:3rem;padding-left:1.25rem}.about-header h1{letter-spacing:-.03em;margin:0;font-size:clamp(2.5rem,9vw,4.5rem);font-weight:700;line-height:1}.about-section{border-top:1px solid var(--rule);grid-template-columns:10rem 1fr;gap:1.5rem;padding:2rem 0;display:grid}.about-section h2{letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:700}.about-body{max-width:60ch;font-size:1.0625rem;line-height:1.65}.about-body p{margin:0 0 1em}.about-body p:last-child{margin-bottom:0}.about-body a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:2px}.about-body a:hover{color:var(--accent)}.about-body a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media (max-width:40rem){.about-section{grid-template-columns:1fr;gap:.75rem}}@media (prefers-reduced-motion:reduce){.about{animation:none}}
.projects{box-sizing:border-box;max-width:56rem;min-height:100vh;margin:0 auto;padding:clamp(2rem,8vw,6rem) 1.5rem;animation:.5s ease-out both projects-in}@keyframes projects-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.projects-header{border-left:6px solid var(--accent);margin-bottom:3rem;padding-left:1.25rem}.projects-header h1{letter-spacing:-.03em;margin:0;font-size:clamp(2.5rem,9vw,4.5rem);font-weight:700;line-height:1}.projects-category{border-top:1px solid var(--rule);grid-template-columns:11rem 1fr;gap:1.5rem;padding:2.5rem 0;display:grid}.projects-category>h2{letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:700}.projects-list{flex-direction:column;gap:3.5rem;display:flex}.projects-item{flex-direction:column;gap:1.25rem;display:flex}.projects-gallery{scroll-snap-type:x proximity;gap:.75rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.projects-media{scroll-snap-align:start;border:1px solid var(--rule);border-radius:6px;flex:none;width:auto;max-width:100%;height:13.5rem;display:block}.projects-item h3{letter-spacing:-.02em;margin:0;font-size:1.375rem;font-weight:700;line-height:1.2}.projects-meta{color:var(--muted);flex-direction:column;gap:.25rem;margin:.625rem 0 0;font-size:.9375rem;line-height:1.4;display:flex}.projects-summary{max-width:60ch;margin:0;font-size:1.0625rem;line-height:1.65}.projects-tags{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.projects-tags li{border:1px solid var(--rule);color:var(--muted);border-radius:999px;padding:.25rem .75rem;font-size:.875rem;line-height:1.3}.projects-links{flex-wrap:wrap;gap:.625rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.projects-links a{border:1.5px solid var(--ink);color:var(--ink);border-radius:6px;padding:.45rem .85rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:inline-block}.projects-links a:hover{background:var(--ink);color:var(--bg)}.projects-links a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@media (max-width:44rem){.projects-category{grid-template-columns:1fr;gap:1.25rem}}@media (prefers-reduced-motion:reduce){.projects{animation:none}.projects-links a{transition:none}}
