.about-page{padding:3rem 1.5rem 4rem;animation:fadeUp .5s ease both}.about-container{max-width:780px;margin:0 auto}.about-header{display:flex;gap:3rem;align-items:center;margin-bottom:2.5rem}.about-header-text{flex:1}.about-name{font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;font-family:EB Garamond,Georgia,serif;color:var(--accent);letter-spacing:-.01em;line-height:1.1;margin-bottom:.5rem}.about-email{color:var(--accent);font-family:EB Garamond,Georgia,serif;font-size:1rem;text-decoration:none;display:inline-block;margin-bottom:1.2rem;transition:opacity .2s}.about-email:hover{opacity:.75}.about-bio{display:flex;flex-direction:column;gap:.7rem;font-size:1rem;color:var(--text);line-height:1.75}.about-link{color:var(--accent);text-decoration:none;transition:border-color .2s}a.about-link{text-decoration:underline}.about-link:hover{border-color:var(--accent)}.about-photo-col{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}.about-photo-wrap{width:300px;overflow:hidden;border:1px solid var(--border);background:var(--surface);transition:border-color .25s}.about-photo-wrap img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.about-location{display:flex;flex-direction:column;gap:.1rem;font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--muted);line-height:1.5}.about-social{display:flex;gap:1rem;align-items:center;justify-content:flex-start;padding-top:1rem;margin-bottom:1.2rem}.about-social .social-icon svg{width:22px;height:22px}.social-icon{color:var(--text);display:flex;align-items:center;transition:color .2s,transform .2s}.social-icon:hover{color:var(--accent);transform:translateY(-2px)}@media(max-width:600px){.about-header{flex-direction:column;gap:1.5rem}.about-photo-wrap{width:100%;height:100%}.about-photo-col{width:100%;align-items:center}.about-location{align-items:center}.about-header-text,.about-name{text-align:center}.about-social{justify-content:center}}.resume-page{padding:3rem 1.5rem 4rem;animation:fadeUp .5s ease both}.resume-main{max-width:680px;margin:0 auto}.resume-header{display:flex;gap:2rem;align-items:flex-start;justify-content:center;padding-bottom:2.5rem;border-bottom:1px solid var(--border);margin-bottom:3rem;text-align:center}.resume-header-text{flex:1}.resume-photo-wrap{flex-shrink:0;width:96px;height:96px;border-radius:50%;overflow:hidden;border:2px solid var(--accent);background:var(--surface)}.resume-photo-wrap img{width:100%;height:100%;object-fit:cover;display:block}.resume-name{font-size:clamp(2rem,5vw,2.8rem);font-weight:500;letter-spacing:-.02em;line-height:1.15;color:var(--accent);font-family:EB Garamond,Georgia,serif}.resume-title-line{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--muted);margin-top:.6rem;letter-spacing:.04em;text-transform:uppercase}.resume-contact-row{margin-top:1.2rem;font-size:.88rem;color:var(--muted);font-family:JetBrains Mono,monospace;display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;align-items:center;justify-content:center}.resume-contact-row a{color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s;display:inline-flex;align-items:center}.resume-contact-row a:hover{color:var(--accent);border-color:var(--accent)}.resume-section{margin-bottom:3rem}.resume-section-title{font-family:JetBrains Mono,monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.resume-section p{margin-bottom:.8rem;font-size:1rem}.resume-section p:last-child{margin-bottom:0}.exp-list{display:flex;flex-direction:column;gap:1.6rem}.exp-item{padding-left:1.2rem;border-left:2px solid var(--border);transition:border-color .2s}.exp-item:hover{border-color:var(--accent)}.exp-role{font-weight:500;font-family:EB Garamond,Georgia,serif;font-size:1rem}.exp-meta{font-family:JetBrains Mono,monospace;font-size:.76rem;color:var(--muted);margin-bottom:.3rem}.exp-desc{font-size:.95rem;color:var(--text);opacity:.85}.project-list{display:flex;flex-direction:column;gap:1.2rem}.project-item{padding-left:1.2rem;border-left:2px solid var(--border);transition:border-color .2s}.project-item:hover{border-color:var(--accent)}.project-name{font-style:italic;font-family:EB Garamond,Georgia,serif;font-size:1rem}.project-link{color:var(--text);text-decoration:none;border-bottom:1px solid var(--border);transition:border-color .2s,color .2s;display:inline-flex;align-items:center}.project-link:hover{color:var(--accent);border-color:var(--accent)}.project-meta{font-family:JetBrains Mono,monospace;font-size:.74rem;color:var(--muted);margin-top:.1rem}.project-desc{font-size:.95rem;color:var(--text);opacity:.85;margin-top:.2rem}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.8rem 2rem}.skill-label{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:.2rem}.skill-tags{font-size:.92rem;color:var(--text);line-height:1.6}.edu-item{margin-bottom:.6rem}.edu-item:last-child{margin-bottom:0}.edu-degree{font-weight:500;font-family:EB Garamond,Georgia,serif;font-size:1rem}.edu-minor{font-weight:400;color:var(--muted)}.edu-meta{font-family:JetBrains Mono,monospace;font-size:.76rem;color:var(--muted)}@media(max-width:520px){.resume-header{flex-direction:column-reverse;gap:1.2rem}.resume-photo-wrap{width:72px;height:72px}.skill-grid{grid-template-columns:1fr 1fr}}.projects-page{padding:3rem 1.5rem 4rem;animation:fadeUp .5s ease both}.projects-container{max-width:1080px;margin:0 auto}.projects-heading{font-family:EB Garamond,Georgia,serif;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;color:var(--accent);letter-spacing:-.01em;margin-bottom:2rem}.projects-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.projects-grid li{display:flex}.project-card{display:flex;flex-direction:column;width:100%;border:1px solid var(--border);background:var(--surface);text-decoration:none;color:var(--text);transition:border-color .2s,transform .2s}.project-card:hover{border-color:var(--accent);transform:translateY(-2px)}.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-card-cover{aspect-ratio:16 / 9;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--border);transition:border-color .2s}.project-card:hover .project-card-cover{border-color:var(--accent)}.project-card-img{width:100%;height:100%;object-fit:cover;display:block}.project-card-cover-placeholder{width:100%;height:100%;background:repeating-linear-gradient(45deg,var(--border) 0px,var(--border) 1px,transparent 1px,transparent 12px);opacity:.4}.project-card-body{display:flex;flex-direction:column;padding:1rem 1.2rem 1.1rem;flex:1}.project-card-name{font-family:EB Garamond,Georgia,serif;font-size:1.1rem;font-weight:500;color:var(--text);margin-bottom:.2rem}.project-card-tagline{font-size:.88rem;color:var(--muted);margin-bottom:.7rem;line-height:1.5;flex:1}.project-card-tech{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.8rem}.project-card:hover .tech-chip{border-color:var(--accent);color:var(--accent)}.project-card-arrow{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--accent);letter-spacing:.04em}@media(max-width:860px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.projects-grid{grid-template-columns:1fr}}.project-detail-page{padding:3rem 1.5rem 4rem;animation:fadeUp .5s ease both}.project-detail-container{max-width:720px;margin:0 auto}.project-back-link{font-family:JetBrains Mono,monospace;font-size:.76rem;color:var(--muted);text-decoration:none;letter-spacing:.03em;display:inline-block;margin-bottom:2rem;transition:color .2s}.project-back-link:hover{color:var(--accent)}.project-back-link:focus-visible,.project-detail-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-detail-hero{width:100%;margin-bottom:2rem;border:1px solid var(--border);overflow:hidden}.project-detail-hero-img{width:100%;display:block;object-fit:cover}.project-detail-name{font-family:EB Garamond,Georgia,serif;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;color:var(--accent);letter-spacing:-.01em;margin-bottom:1rem}.project-detail-tech{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:2rem}.project-detail-sections{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2.5rem}.project-detail-section-block{display:flex;flex-direction:column;gap:.5rem}.project-detail-section-title{font-family:JetBrains Mono,monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0;padding-bottom:.4rem;border-bottom:1px solid var(--border)}.project-detail-text{font-size:1rem;color:var(--text);line-height:1.75;margin:0}.project-detail-figure{margin:0;border:1px solid var(--border);overflow:hidden}.project-detail-figure-img{width:100%;display:block;object-fit:cover}.project-detail-figcaption{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--muted);padding:.5rem .75rem;border-top:1px solid var(--border)}.project-detail-links{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center}.project-detail-link{font-family:JetBrains Mono,monospace;font-size:.82rem;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:1px;display:inline-flex;align-items:center;transition:color .2s,border-color .2s}.project-detail-link:hover{color:var(--accent);border-color:var(--accent)}.project-not-found{padding-top:4rem;text-align:center;font-family:JetBrains Mono,monospace;color:var(--muted)}.project-not-found-code{display:block;font-size:3rem;color:var(--accent);margin-bottom:.5rem}.project-not-found p{font-size:.88rem;margin-bottom:1.5rem}.app-shell{display:flex;flex-direction:column;min-height:100vh}.nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:.9rem 2rem;border-bottom:1.5px solid var(--nav-border);position:sticky;top:0;z-index:100;background:var(--bg);transition:background .25s ease,border-color .25s ease}.nav-links{display:flex;gap:1.5rem;align-items:center}.nav-link{font-family:JetBrains Mono,monospace;font-size:.82rem;letter-spacing:.04em;color:var(--text);text-decoration:none;transition:color .2s}.nav-link:hover,.nav-link.active{color:var(--accent)}.theme-toggle{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;display:flex;align-items:center;transition:color .2s;line-height:1}.theme-toggle:hover{color:var(--accent)}.page-content{flex:1}.footer{padding:1.5rem 2rem;border-top:1px solid var(--border);font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--muted);text-align:center;transition:border-color .25s ease}.tech-chip{font-family:JetBrains Mono,monospace;font-size:.68rem;letter-spacing:.03em;color:var(--muted);border:1px solid var(--border);padding:.15rem .45rem;transition:border-color .2s,color .2s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f0eb;--surface: #ede8e1;--text: #1c1917;--muted: #7c7369;--accent: #cf6336;--accent2: #2d4a6e;--border: #d8d0c6;--nav-border: #cf6336}[data-theme=dark]{--bg: #1a1714;--surface: #242019;--text: #ede8e1;--muted: #9a9088;--accent: #e07848;--accent2: #5b82ae;--border: #3a3530;--nav-border: #e07848}html,body{min-height:100%}body{background:var(--bg);color:var(--text);font-family:EB Garamond,Georgia,serif;font-size:18px;line-height:1.7;transition:background .25s ease,color .25s ease}a{color:inherit;text-decoration:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
