:root{--bg: #faf6ee;--bg-raised: #ffffff;--border: #e2d9c4;--border-soft: #ece4d2;--text: #2a251d;--text-dim: #6c6151;--text-faint: #a69a82;--accent: #5c6d4e;--accent-deep: #3f4d36;--gold: #a9793f;--font-display: "Playfair Display", Georgia, serif;--font-body: "Lora", Georgia, serif}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}.topnav{border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.topnav-inner{max-width:760px;margin:0 auto;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.brand{font-family:var(--font-display);font-weight:600;font-size:19px;letter-spacing:.01em}.nav-links{display:flex;gap:28px;flex-wrap:wrap}.nav-link{font-family:var(--font-body);font-style:italic;font-size:15px;color:var(--text-dim);cursor:pointer;background:none;border:none;padding:2px 0;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}.nav-link:hover{color:var(--text)}.nav-link.active{color:var(--accent-deep);border-bottom-color:var(--accent)}.wrap{max-width:680px;margin:0 auto;padding:0 32px}.page{padding:64px 0 96px;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.eyebrow{font-family:var(--font-body);font-style:italic;font-size:15px;color:var(--accent);margin-bottom:6px}h1.name{font-family:var(--font-display);font-weight:700;font-size:clamp(38px,6vw,56px);letter-spacing:-.01em;line-height:1.08;margin-bottom:10px}.role{font-family:var(--font-display);font-style:italic;font-weight:500;color:var(--text-dim);font-size:21px;margin-bottom:26px}.tagline{color:var(--text-dim);font-size:17.5px;max-width:520px;margin-bottom:36px}hr.rule{border:none;border-top:1px solid var(--border);margin:36px 0}.btn-row{display:flex;gap:28px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.btn{font-family:var(--font-body);font-style:italic;font-size:16px;color:var(--accent-deep);cursor:pointer;background:none;border:none;border-bottom:1px solid var(--accent);padding:0 0 2px;transition:opacity .15s}.btn:hover{opacity:.7}.btn-primary{color:var(--accent-deep);font-weight:600;font-style:normal}.status-row{display:flex;gap:24px;flex-wrap:wrap;margin-top:40px;padding-top:22px;border-top:1px solid var(--border-soft);font-size:14.5px;color:var(--text-dim);font-style:italic}.section-label{font-family:var(--font-body);font-style:italic;font-size:15px;color:var(--accent);margin-bottom:8px}h2.section-title{font-family:var(--font-display);font-size:34px;font-weight:700;letter-spacing:-.01em;margin-bottom:34px}.bio-block{max-width:600px;color:var(--text-dim);font-size:17.5px;margin-bottom:40px}.bio-block strong{color:var(--text);font-weight:600}.bio-block em{color:var(--accent-deep)}.fact-row{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid var(--border-soft);align-items:baseline}.fact-row:last-child{border-bottom:none}.fact-label{font-family:var(--font-display);font-style:italic;font-size:14px;color:var(--accent);width:90px;flex-shrink:0}.fact-value{color:var(--text-dim);font-size:16px}.skills-grid{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 8px}.skill-chip{font-family:var(--font-body);font-size:15.5px;padding:9px 18px;background:var(--bg-raised);border:1px solid var(--border);border-radius:20px;color:var(--text-dim);cursor:pointer;transition:border-color .15s,color .15s}.skill-chip:hover{border-color:var(--accent);color:var(--text)}.skill-chip.active{border-color:var(--accent);color:var(--accent-deep);background:#f1f0e6}.skill-detail{margin-top:28px;padding:26px 30px;border-left:3px solid var(--accent);background:var(--bg-raised)}.skill-detail-header{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:19px;color:var(--accent-deep);margin-bottom:10px}.skill-detail-body{color:var(--text-dim);font-size:16px;line-height:1.75}.learning-line{font-family:var(--font-body);font-style:italic;font-size:15px;color:var(--text-faint);margin-top:32px}.learning-line .accent{color:var(--accent-deep)}.project-card{border-top:1px solid var(--border);padding:36px 0}.project-shot{width:100%;height:auto;display:block;border:1px solid var(--border);margin-bottom:22px;object-fit:cover}.project-title-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:10px}.project-title{font-family:var(--font-display);font-size:24px;font-weight:700}.project-tag{font-family:var(--font-body);font-style:italic;font-size:14px;color:var(--accent)}.project-desc{color:var(--text-dim);margin-bottom:16px;font-size:16.5px}.stack-row{font-family:var(--font-body);font-style:italic;color:var(--text-faint);font-size:15px;margin-bottom:20px}.project-links{display:flex;gap:24px}.placeholder-card{border-top:1px solid var(--border);padding:36px 0;color:var(--text-faint);font-family:var(--font-body);font-style:italic;font-size:15.5px}.job-entry{padding:26px 0;border-bottom:1px solid var(--border-soft)}.job-entry:last-child{border-bottom:none}.job-meta{font-family:var(--font-body);font-style:italic;font-size:14px;color:var(--accent);margin-bottom:6px}.job-title{font-family:var(--font-display);font-weight:700;font-size:20px;margin-bottom:4px}.job-org{color:var(--text-dim);font-size:15.5px;font-style:italic;margin-bottom:10px}.job-desc{color:var(--text-dim);font-size:16px}.edu-card{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border-soft);padding:26px 0;cursor:pointer;font-family:var(--font-body)}.edu-card:last-child{border-bottom:none}.edu-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}.edu-institution{font-family:var(--font-display);font-weight:700;font-size:19px;color:var(--text)}.edu-location{font-style:italic;font-size:14px;color:var(--text-faint);margin-top:3px}.edu-date-col{text-align:right;flex-shrink:0}.edu-date{font-style:italic;font-size:14px;color:var(--accent)}.edu-badge{display:inline-block;margin-top:6px;font-size:12px;color:var(--gold);border:1px solid var(--gold);border-radius:4px;padding:2px 8px}.edu-summary{font-size:15.5px;color:var(--text-dim);margin-bottom:8px}.edu-more{font-style:italic;font-size:14px;color:var(--accent)}.edu-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a251d73;display:flex;align-items:center;justify-content:center;padding:24px;z-index:100;animation:fadeIn .2s ease}.edu-modal{position:relative;background:var(--bg-raised);border:1px solid var(--border);max-width:620px;width:100%;max-height:85vh;overflow-y:auto;padding:52px 48px}.edu-modal-close{position:absolute;top:22px;right:22px;background:none;border:1px solid var(--border);border-radius:50%;width:32px;height:32px;color:var(--text-dim);cursor:pointer;font-size:14px}.edu-modal-close:hover{color:var(--accent-deep);border-color:var(--accent)}.edu-modal-eyebrow{font-style:italic;font-size:14px;color:var(--accent);margin-bottom:14px}.edu-modal-title{font-family:var(--font-display);font-size:30px;font-weight:700;margin-bottom:6px}.edu-modal-location{font-style:italic;font-size:15px;color:var(--text-faint);margin-bottom:20px}.edu-modal-credential{font-size:16px;font-weight:600;color:var(--accent-deep);margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border-soft)}.edu-modal-story{font-size:17px;line-height:1.85;color:var(--text-dim)}@media (max-width: 640px){.edu-modal{padding:40px 26px}.edu-modal-title{font-size:24px}}.contact-list{border-top:1px solid var(--border)}.contact-row{display:flex;justify-content:space-between;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--border-soft);transition:opacity .15s}.contact-row:hover{opacity:.65}.contact-label{font-family:var(--font-display);font-style:italic;font-size:16px;color:var(--accent)}.contact-value{font-size:16.5px;color:var(--text)}footer{border-top:1px solid var(--border);padding:28px 0;font-family:var(--font-body);font-style:italic;font-size:14px;color:var(--text-faint);text-align:center}footer .accent{color:var(--accent-deep)}@media (max-width: 640px){.wrap{padding:0 22px}.topnav-inner{padding:20px 22px}.page{padding:44px 0 72px}.nav-links{gap:18px}}
