@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-bottom]{object-position:top bottom}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-top]{object-position:bottom top}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-right]{object-position:left right}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-left]{object-position:right left}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}.face{box-sizing:border-box;width:100%;min-width:0;max-width:700px;font-family:var(--font-mono,monospace);color:var(--ink);text-align:left;--face-muted:#686459;margin-inline:auto;font-size:1rem;line-height:1.6}.face .section-header{border-bottom:1px solid var(--paper-edge,#d8d4c7);width:100%;color:var(--ink,#2b2a26);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.5rem;font-size:1rem;font-weight:700;line-height:1.6;display:flex}.face .section-header h1,.face .section-header h2{font:inherit;margin:0}.face .section-header>span{color:inherit;font:inherit;white-space:nowrap}.face .fields{border-left:1px solid var(--paper-edge,#d8d4c7);padding-left:1.4rem}.face .field{align-items:flex-start;gap:.75rem;margin-bottom:.35rem;display:flex}.face .field:last-child{margin-bottom:0}.face .key{color:var(--ink-soft,#55524a);letter-spacing:.03em;flex-shrink:0;font-weight:600}.face .value{min-width:0;color:var(--ink-soft,#55524a);text-align:left;overflow-wrap:break-word;flex:1;line-height:1.55}.face .profile{align-items:flex-start;gap:1.75rem;display:flex}.face .portrait{box-sizing:border-box;border:1px solid var(--paper-edge,#d8d4c7);background:var(--paper,#edeae1);flex-shrink:0;width:130px;height:210px;padding:4px;overflow:hidden}.face .portrait img{object-fit:cover;transform-origin:bottom;width:100%;height:100%;display:block;transform:scale(1.8)}.face .identity{flex:1;min-width:0}.face .identity .section-header{margin-bottom:.75rem}.face .identity .key{width:5.25rem;font-size:1rem}.face .identity .value{font-size:1rem;font-weight:500}.face .work{margin-top:1.25rem}.face .work .section-header{margin-bottom:1rem}.face .work-list{flex-direction:column;gap:1.5rem;width:100%;min-width:0;margin:0;padding:0;list-style:none;display:flex}.face .work-entry{box-sizing:border-box;width:100%;min-width:0;margin:0}.face .work-heading{text-align:left;justify-content:space-between;align-items:baseline;gap:1rem;margin:0 0 .35rem;padding:0;display:flex}.face .work-heading h3{min-width:0;font-family:var(--font-mono,monospace);align-items:baseline;gap:.6rem;margin:0;padding:0;font-weight:400;line-height:1.5;display:flex}.face .work-prompt{color:var(--ink-soft,#55524a);font-size:1rem;font-weight:600}.face .work-number{color:var(--face-muted);white-space:nowrap;font-size:1rem;font-weight:400}.face .work-title{color:var(--ink-soft,#55524a);font-family:var(--font-mono,monospace);letter-spacing:-.02em;text-transform:none;font-size:1.4rem;font-weight:600;line-height:1.5}.face .work-period{color:var(--ink-soft,#55524a);letter-spacing:.02em;white-space:nowrap;font-size:.95rem;font-weight:500}.face .work-body{box-sizing:border-box;border-left:1px solid var(--paper-edge,#d8d4c7);width:100%;min-width:0;margin-left:0;padding-left:1.4rem}.face .work-subtitle{color:var(--face-muted);letter-spacing:.03em;text-transform:uppercase;margin:0 0 .4rem;font-size:.9rem;font-weight:400;line-height:1.6}.face .work-description{width:100%;color:var(--ink-soft,#55524a);text-align:left;margin:0 0 .65rem;font-size:1.1rem;font-weight:400;line-height:1.5}.face .work-meta{color:var(--ink-soft,#55524a);margin-bottom:.65rem;font-size:1rem;line-height:1.5;display:block}.face .work-meta>span:first-child{color:var(--face-muted);margin-right:.75rem}.face .work-engineering{margin-bottom:0}.face .engineering-label{color:var(--face-muted);margin-bottom:.3rem;font-size:.9rem;line-height:1.6;display:block}.face .work-engineering ul{margin:0;padding:0;list-style:none}.face .work-engineering li{color:var(--ink-soft,#55524a);text-align:left;margin-bottom:.15rem;padding-left:1.25rem;font-size:1rem;line-height:1.6;position:relative}.face .work-engineering li:before{content:"└";color:var(--face-muted);position:absolute;left:0}.face .work-engineering li:last-child{margin-bottom:0}.face .contact{margin-top:1.5rem;scroll-margin-top:5rem}.face .contact .section-header{margin-bottom:1rem}.face .contact-group{flex-direction:column;gap:.4rem;display:flex}.face .contact-group+.contact-group{margin-top:1rem}.face .contact .field{margin:0}.face .contact .key{width:7.5rem;font-size:.9rem;font-weight:600}.face .contact .value{font-size:.95rem}.face .contact-link{width:fit-content;min-width:0;color:var(--accent-face,#7a5c42);overflow-wrap:anywhere;flex:0 auto;align-items:baseline;gap:.5rem;font-size:.95rem;font-weight:500;text-decoration:none;display:inline-flex}.face .contact-link span{flex-shrink:0;font-size:.85rem}.face .contact-link:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.face .resume-actions{flex-wrap:wrap;align-items:baseline;gap:1.5rem;display:flex}.face .resume-link{color:var(--accent-face,#7a5c42);font-family:inherit;font-size:.95rem;font-weight:500;line-height:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.face .resume-link:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.face .work-footer{border-top:1px solid var(--paper-edge);flex-wrap:wrap;justify-content:center;align-items:center;gap:1.25rem;margin-top:1.5rem;padding-top:1rem;display:flex}.face .work-footer button,.face .work-footer a{color:var(--ink);font-family:var(--font-mono,monospace);cursor:pointer;background:0 0;border:none;padding:0;font-size:.95rem;font-weight:600;line-height:1.6;text-decoration:none}.face .work-footer button:hover,.face .work-footer a:hover{text-underline-offset:4px;text-decoration:underline}.face .work-footer button:focus-visible,.face .work-footer a:focus-visible{outline:2px solid var(--accent-face);outline-offset:4px}.face .resume-dialog{box-sizing:border-box;background:var(--paper,#edeae1);border:1px solid var(--paper-edge,#d8d4c7);width:min(900px,100vw - 2rem);max-width:none;height:min(850px,100dvh - 2rem);max-height:none;color:var(--ink);font-family:var(--font-mono,monospace);margin:auto;padding:0}.face .resume-dialog[open]{flex-direction:column;display:flex}.face .resume-dialog::backdrop{background:#191816b3}.face .resume-header{border-bottom:1px solid var(--paper-edge);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.25rem;display:flex}.face .resume-header h2{color:var(--face-muted);letter-spacing:.05em;margin:0;font-size:.92rem;font-weight:600}.face .resume-controls{align-items:center;gap:1.5rem;display:flex}.face .resume-controls form{margin:0}.face .resume-controls a,.face .resume-controls button,.face .resume-footer a{color:var(--accent-face,#7a5c42);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.8rem;text-decoration:none}.face .resume-controls a:hover,.face .resume-controls button:hover,.face .resume-footer a:hover{text-underline-offset:4px;text-decoration:underline}.face .resume-viewer{background:#fff;border:none;flex:1;width:100%;min-height:0;display:block}.face .resume-footer{border-top:1px solid var(--paper-edge);color:var(--face-muted);justify-content:space-between;gap:1rem;padding:.65rem 1.25rem;font-size:.75rem;display:flex}.face .contact-link:focus-visible,.face .resume-link:focus-visible,.face .resume-dialog a:focus-visible,.face .resume-dialog button:focus-visible{outline:2px solid var(--accent-face,#7a5c42);outline-offset:4px}main:has(>.face){text-align:left;align-items:stretch;gap:0;padding-top:1.5rem;padding-bottom:4rem}main:has(>.face)>.face{box-sizing:border-box;width:100%;max-width:700px;margin-inline:auto;padding:0}@media (width<=600px){.face .section-header{font-size:.85rem}.face .profile{flex-direction:column;align-items:center;gap:1rem}.face .portrait{width:110px;height:140px}.face .portrait img{transform-origin:bottom;transform:scale(1.45)}.face .identity{width:100%}.face .identity .key,.face .identity .value{font-size:.85rem}.face .fields{padding-left:.85rem}.face .work-heading{flex-direction:column;align-items:flex-start;gap:.25rem}.face .work-title{font-size:1.25rem}.face .work-number{font-size:.9rem}.face .work-period{margin-left:1.5rem;font-size:.85rem}.face .work-description{font-size:1rem;line-height:1.75}.face .work-meta,.face .work-engineering li{font-size:1rem}.face .work-subtitle,.face .engineering-label{font-size:.875rem}.face .contact .key{width:6.5rem;font-size:.85rem}.face .contact .value,.face .resume-link{font-size:.85rem}.face .resume-actions{gap:1rem}.face .resume-dialog{width:calc(100vw - 1rem);height:calc(100dvh - 1rem)}.face .resume-header{padding:.75rem}.face .resume-header h2{font-size:.75rem}.face .resume-controls{gap:.75rem}.face .resume-controls a,.face .resume-controls button{font-size:.7rem}.face .resume-footer{padding:.65rem .75rem;font-size:.65rem}}
