@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;600&display=swap";:root{color:#f5f7fb;--content-max:1200px;--gutter:clamp(20px, 4vw, 64px);--radius-shell:20px;--radius-card:12px;--text-body:#d6deeb;--text-muted:#aeb9cc;background:#0f172a;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(#0f172a 0%,#111827 100%);min-width:320px}a{color:#c4b5fd}a:hover{color:#ddd6fe}.site{flex-direction:column;align-items:stretch;min-height:100vh;padding:40px 0;display:flex;position:relative;overflow:hidden}.top-bar{width:min(var(--content-max), calc(100% - (var(--gutter) * 2)));margin-inline:auto;z-index:2;justify-content:space-between;align-items:flex-start;margin-bottom:28px;padding:0;display:flex}.brand h1{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:3rem;line-height:1}.site-shell{width:min(var(--content-max), calc(100% - (var(--gutter) * 2)));border-radius:var(--radius-shell);z-index:1;background:#0f172ad6;border:1px solid #94a3b81a;margin-inline:auto;padding:clamp(24px,4vw,48px);position:relative;box-shadow:0 10px 28px #00000038}.site-shell:before,.site-shell:after{content:"";pointer-events:none;background:linear-gradient(#0000,#94a3b81f,#0000);width:2px;position:absolute;top:-24px;bottom:-24px}.site-shell:before{opacity:.2;left:-120px}.site-shell:after{opacity:.2;right:-120px}.site-header{margin-bottom:32px}.site-header h1{text-align:center;margin:0 0 12px;font-size:clamp(2rem,5vw,3.25rem);line-height:1.05}.tagline{margin-top:.5rem}.tagline-title,.tagline-subtitle{color:var(--text-muted);text-transform:uppercase;letter-spacing:.22em;margin:0}.tagline-title{font-size:1.1rem;font-weight:500}.tagline-subtitle{opacity:.85;margin-top:.35rem;font-size:.9rem}.site-nav{flex-wrap:wrap;gap:24px;margin-top:10px;display:flex}.site-nav a{color:#e6edf8;font-size:1rem;text-decoration:none;position:relative}.site-nav a:after{content:"";transform-origin:0;background:#c4b5fd;width:100%;height:1px;transition:transform .18s;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.site-nav a:hover:after,.site-nav a:focus-visible:after{transform:scaleX(1)}.site-nav a:hover,.site-nav a[aria-current=page]{color:#ddd6fe}.site-nav a[aria-current=page]:after{transform:scaleX(1)}.site-nav a:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #c4b5fdd9}.content section,.content-page{width:100%}.content-page>*+h2,.content-page>*+h3{margin-top:2.2rem}.content-page h4{color:#e2e8f0;letter-spacing:.01em;margin:1.6rem 0 .75rem;font-size:1.02rem}.content h2,.content-page h2{color:#f8fafc;margin:0 0 12px;font-size:1.4rem}.content-page h2.personal-projects-heading{margin:3rem 0 12px}.content h3,.content-page h3{color:#f8fafc;margin:24px 0 12px;font-size:1.15rem}.content p,.content li,.content-page p,.content-page li{color:var(--text-body);max-width:72ch;font-size:1rem;line-height:1.65}.content p+p,.content-page p+p{margin-top:16px}.content ul,.content-page ul{margin:0;padding-left:20px}.content li+li,.content-page li+li{margin-top:12px}.headshot{object-fit:cover;border-radius:var(--radius-card);border:1px solid #94a3b82e;width:300px;height:300px;margin:0 auto 24px;display:block}.project-item{border-radius:var(--radius-card);background:#ffffff05;border:1px solid #ffffff1a;margin-top:20px;padding:20px;transition:transform .18s,border-color .18s,box-shadow .18s}.project-item:hover{border-color:#c4b5fd47;transform:translateY(-2px);box-shadow:0 10px 28px #0003}.project-item h3{margin-top:0}.project-item p,.project-item li{max-width:68ch}.project-links{margin-top:12px}@media (width<=900px){.top-bar{flex-direction:column;align-items:flex-start;gap:20px}.brand h1{letter-spacing:.12em;font-size:2.2rem}.site-nav{gap:16px;margin-top:0}.site-shell:before,.site-shell:after{display:none}}@media (width<=640px){.site-shell{padding:28px}.site-shell:before,.site-shell:after{display:none}.site-header h1{font-size:2.5rem}.site-nav{gap:12px}}.project-preview{border-radius:var(--radius-card);border:1px solid #94a3b859;width:100%;max-width:1020px;margin:16px auto 20px;transition:border-color .18s,box-shadow .18s;display:block;box-shadow:0 8px 24px #02061747}.project-item:hover .project-preview{border-color:#c4b5fd8c;box-shadow:0 12px 28px #02061757}
