:root{--paper:#f4f1e9;--ink:#1e2826;--muted-ink:#5e6761;--accent:#285746;--line:#c9c9bd;--pale-accent:#dce7dc}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}button,a{font:inherit}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.hero,.about,.projects,.contact{padding-left:clamp(1.5rem,5vw,5rem);padding-right:clamp(1.5rem,5vw,5rem)}.hero{border-bottom:1px solid var(--line);min-height:100svh}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:76rem;min-height:6.25rem;margin:0 auto;display:flex}.site-mark{border:1px solid var(--ink);width:2.65rem;height:2.65rem;color:var(--ink);letter-spacing:-.08em;border-radius:50%;place-items:center;margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:.82rem;font-weight:700;text-decoration:none;display:grid}.portrait{border:1px solid var(--ink);object-fit:cover;border-radius:50%;width:7rem;height:7rem;margin-bottom:2.6rem}.site-mark{width:2.65rem;height:2.65rem;font-size:.82rem}.site-nav,.hero-links,.contact-links{flex-wrap:wrap;gap:1.4rem;display:flex}.site-nav a,.hero-links a,.contact-links a{color:var(--muted-ink);letter-spacing:.04em;text-underline-offset:.24em;font-size:.82rem;font-weight:650;text-decoration-thickness:1px}.site-nav a:hover,.hero-links a:hover,.contact-links a:hover{color:var(--accent)}.hero-content{align-content:center;justify-items:start;max-width:76rem;min-height:calc(100svh - 6.25rem);margin:0 auto;padding:6.5rem 0;display:grid}.portrait-placeholder{background:var(--pale-accent);width:7rem;height:7rem;margin-bottom:2.6rem;font-size:2.25rem}.eyebrow{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:750}.hero-name,.section-heading h2,.contact h2{letter-spacing:-.055em;margin:0;font-family:Georgia,Times New Roman,serif;font-weight:400}.hero-name{max-width:65rem;margin-top:1rem;font-size:clamp(4.3rem,12vw,10.5rem);line-height:.84}.hero-title{color:var(--accent);letter-spacing:.025em;margin:2.25rem 0 0;font-size:clamp(1.05rem,2vw,1.4rem);font-weight:650}.hero-summary{max-width:37rem;color:var(--muted-ink);margin:1.1rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.42}.hero-links{margin-top:2.4rem}.resume-download{border:1px solid var(--ink);background:var(--ink);color:var(--paper);letter-spacing:.04em;text-transform:uppercase;margin-top:1.5rem;padding:.8rem 1.1rem;font-size:.82rem;font-weight:700;text-decoration:none}.resume-download:hover{background:var(--accent);border-color:var(--accent)}.about,.projects,.contact{max-width:86rem;margin:0 auto;padding-top:clamp(5.5rem,11vw,9rem);padding-bottom:clamp(5.5rem,11vw,9rem)}.about{border-bottom:1px solid var(--line);grid-template-columns:minmax(12rem,.85fr) minmax(0,1.45fr);gap:4rem;display:grid}.section-heading h2,.contact h2{max-width:36rem;margin-top:.8rem;font-size:clamp(2.3rem,4vw,4rem);line-height:.98}.about-copy{max-width:40rem;color:var(--muted-ink);font-size:clamp(1.12rem,1.6vw,1.35rem);line-height:1.62}.about-copy p{margin:0}.about-location{color:var(--ink);font-size:.94rem;font-weight:650;margin-top:1.6rem!important}.projects{border-bottom:1px solid var(--line)}.projects-heading{max-width:40rem;margin-bottom:4.5rem}.projects-list{border-top:1px solid var(--line)}.project-card{border-bottom:1px solid var(--line);grid-template-columns:4.4rem minmax(0,1fr) minmax(8rem,.4fr);gap:1.5rem;padding:2.2rem 0;display:grid}.project-number{color:var(--accent);letter-spacing:.08em;margin:.35rem 0 0;font-size:.75rem;font-weight:750}.project-name{letter-spacing:-.045em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,3vw,2.7rem);font-weight:400;line-height:1}.project-description{max-width:39rem;color:var(--muted-ink);margin:.85rem 0 0;font-size:1rem;line-height:1.6}.project-tags{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;display:flex}.project-tag{border:1px solid var(--line);color:var(--muted-ink);border-radius:99rem;padding:.34rem .55rem;font-size:.72rem;font-weight:650}.project-meta{color:var(--muted-ink);align-content:start;gap:.35rem;padding-top:.35rem;font-size:.76rem;line-height:1.4;display:grid}.empty-projects{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted-ink);margin:0;padding:2rem 0}.contact{padding-bottom:2rem}.contact-content{max-width:43rem}.contact h2{margin-top:.85rem}.contact-content>p:not(.eyebrow){max-width:36rem;color:var(--muted-ink);margin:1.4rem 0 0;font-size:1.05rem;line-height:1.6}.contact-email{color:var(--accent);letter-spacing:-.04em;text-underline-offset:.18em;margin-top:2rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,3vw,2.3rem);text-decoration-thickness:1px;display:inline-block}.contact-links{margin-top:1.5rem}footer{border-top:1px solid var(--line);color:var(--muted-ink);margin-top:7rem;padding-top:1.25rem;font-size:.72rem}.page-message{min-height:100svh;color:var(--muted-ink);text-align:center;place-content:center;gap:1rem;padding:2rem;display:grid}.page-message p{margin:0}.page-message button{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:0;justify-self:center;padding:.65rem 1rem}.page-message button:hover{background:var(--ink);color:var(--paper)}.admin-page{place-items:center;min-height:100svh;padding:1.5rem;display:grid}.admin-panel{border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 88%, white);width:min(100%,28rem);padding:clamp(2rem,6vw,3.5rem)}.admin-dashboard{width:min(100%,62rem)}.admin-dashboard-heading{justify-content:space-between;align-items:start;gap:2rem;display:flex}.admin-dashboard-heading>div>p:not(.eyebrow),.admin-projects>p{color:var(--muted-ink);line-height:1.55}.admin-panel h1{letter-spacing:-.055em;margin:.8rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.75rem,7vw,4.25rem);font-weight:400;line-height:.9}.admin-panel h2,.admin-panel h3{letter-spacing:-.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-weight:400}.admin-panel h2{margin-top:.65rem;font-size:clamp(2rem,4vw,3rem);line-height:.95}.admin-panel h3{font-size:1.35rem;line-height:1.1}.admin-panel>p:not(.eyebrow),.admin-status{color:var(--muted-ink);line-height:1.55}.admin-panel form{gap:.7rem;margin-top:2rem;display:grid}.admin-panel label{letter-spacing:.04em;text-transform:uppercase;font-size:.82rem;font-weight:700}.admin-panel input{border:1px solid var(--ink);min-height:2.75rem;color:var(--ink);font:inherit;background:0 0;border-radius:0;padding:.65rem .75rem}.admin-panel textarea{border:1px solid var(--ink);width:100%;min-height:8rem;color:var(--ink);font:inherit;resize:vertical;background:0 0;border-radius:0;padding:.65rem .75rem;line-height:1.5}.admin-panel input:focus,.admin-panel textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.admin-panel button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;border-radius:0;justify-self:start;margin-top:.8rem;padding:.7rem 1rem}.admin-panel button:disabled{cursor:wait;opacity:.65}.admin-secondary-button{color:var(--ink)!important;background:0 0!important;margin-top:0!important}.admin-profile-form{gap:1.35rem!important}.admin-projects{border-top:1px solid var(--line);margin-top:clamp(3.5rem,8vw,5.5rem);padding-top:clamp(2.5rem,6vw,4rem)}.admin-section-heading{justify-content:space-between;align-items:start;gap:2rem;display:flex}.admin-project-form{border:1px solid var(--line);background:var(--pale-accent);padding:clamp(1.35rem,3vw,2rem)}.admin-project-form h3{margin-bottom:.35rem}.admin-empty-projects{color:var(--muted-ink);margin:1.5rem 0 0}.admin-project-list{border-top:1px solid var(--line);margin-top:2.5rem}.admin-project-card{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;gap:2rem;padding:1.75rem 0;display:grid}.admin-project-card>div:first-child>p{max-width:40rem;color:var(--muted-ink);margin:.75rem 0 0;line-height:1.5}.admin-project-card .admin-project-meta,.admin-project-card .admin-project-languages{font-size:.85rem}.admin-project-card .admin-project-languages{color:var(--accent);font-weight:650}.admin-project-actions,.admin-delete-confirmation{flex-wrap:wrap;place-content:start end;gap:.5rem;max-width:14rem;display:flex}.admin-project-actions button{margin-top:0}.admin-delete-confirmation{align-items:center}.admin-delete-confirmation p{color:#8a1f1f;width:100%;margin:0 0 .25rem;font-size:.82rem;font-weight:650}.admin-delete-button{background:#8a1f1f!important;border-color:#8a1f1f!important}.admin-profile-form label{gap:.5rem;display:grid}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem;display:grid}.admin-error{color:#8a1f1f;margin:.5rem 0 0;font-size:.9rem}.admin-success{color:var(--accent);margin:1rem 0 0;font-size:.9rem;font-weight:650}@media (width<=700px){.site-header{min-height:5.25rem}.site-nav{gap:1rem}.site-nav a{font-size:.74rem}.hero-content{min-height:calc(100svh - 5.25rem);padding:4rem 0}.portrait-placeholder{width:5.5rem;height:5.5rem;margin-bottom:2rem;font-size:1.75rem}.hero-name{font-size:clamp(4rem,19vw,6.5rem)}.about{grid-template-columns:1fr;gap:2.25rem}.project-card{grid-template-columns:2.75rem minmax(0,1fr);gap:1rem}.project-meta{grid-area:2/2;gap:.8rem;padding-top:0;display:flex}.project-main{grid-column:2}.admin-dashboard-heading,.admin-section-heading{gap:1.5rem;display:grid}.admin-form-grid{grid-template-columns:1fr}.admin-project-card{grid-template-columns:1fr;gap:1.25rem}.admin-project-actions,.admin-delete-confirmation{justify-content:start;max-width:none}footer{margin-top:5rem}}@media (width<=390px){.site-nav{gap:.7rem}.site-mark{width:2.3rem;height:2.3rem}}
