.page{max-width:640px;margin:0 auto;padding:80px 24px}.header{margin-bottom:64px}.header-top{align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:80px;height:80px}.header-top h1{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.02em;margin-bottom:4px;font-weight:600;line-height:1.2}.subtitle{font-size:var(--text-base);color:#666}.bio{color:#444;margin-bottom:24px;line-height:1.7}.bio .highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(104deg,#dcbf6700 .9%,#dcbf6752 2.4%,#dcbf6747 5.8%,#dcbf6714 93%,#dcbf6747 96%,#dcbf6700 98%);border-radius:3px 8px 5px 7px;margin:0 -.1em;padding:.05em .2em;text-decoration:none;transition:background .2s}.bio .highlight:hover{background:linear-gradient(104deg,#dcbf6700 .9%,#dcbf677a 2.4%,#dcbf676b 5.8%,#dcbf671f 93%,#dcbf676b 96%,#dcbf6700 98%)}.links{flex-wrap:wrap;gap:20px;display:flex}.links a{font-size:var(--text-base);color:#666;align-items:center;gap:5px;transition:color .2s;display:inline-flex}.links a:hover{color:#1a1a1a}.photos{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:64px;display:grid}.photo-card{cursor:pointer}.photo-frame{aspect-ratio:4/3;background:#e8e5e0;border-radius:8px;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.photo-card:hover .photo-frame img{transform:scale(1.05)}.photo-caption{font-size:var(--text-xs);color:#999;margin-top:6px;font-style:italic}.photo-caption a{text-underline-offset:2px;-webkit-text-decoration:underline #d4d0cb;text-decoration:underline #d4d0cb;transition:text-decoration-color .2s}.photo-caption a:hover{text-decoration-color:#999}.lightbox{z-index:100;cursor:pointer;background:#000000d1;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;cursor:default;border-radius:8px;max-width:100%;max-height:90vh}.lightbox-close{color:#fff9;cursor:pointer;background:0 0;border:none;font-size:1.8rem;line-height:1;transition:color .2s;position:absolute;top:16px;right:16px}.lightbox-close:hover{color:#fff}.page>section{margin-bottom:64px}.page>section h2{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.01em;border-bottom:1px solid #d4d0cb;margin-bottom:24px;padding-bottom:8px;font-weight:600}.job+.job{margin-top:28px}.job-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:4px;display:flex}.job-company{color:inherit;font-weight:500;text-decoration:none}.job-company:hover{text-decoration:underline}.job-badge{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:#888;background:#e8e5e0;border-radius:3px;margin-left:8px;padding:2px 7px}.job-period{font-size:var(--text-base);color:#888}.job-role{font-size:var(--text-base);color:#666;margin-bottom:4px}.job-desc{font-size:var(--text-base);color:#555;line-height:1.65}.projects-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.project-card{flex-direction:column;display:flex}.project-img{aspect-ratio:4/3;background:#e8e5e0;border-radius:8px;margin-bottom:10px;overflow:hidden}.project-img img{object-fit:cover;width:100%;height:100%}.project-video{aspect-ratio:4/3;background:#e8e5e0;border-radius:8px;margin-bottom:10px;overflow:hidden}.project-video video{object-fit:cover;border:none;width:100%;height:100%}.project-title{color:inherit;margin-bottom:4px;font-weight:500;text-decoration:none}a.project-title:hover{text-decoration:underline}.project-desc{font-size:var(--text-base);color:#888;line-height:1.55}.recs{list-style:none}.rec{padding:4px 0}.rec a{font-size:var(--text-base);color:#444;align-items:baseline;gap:12px;text-decoration:none;transition:color .2s;display:inline-flex;position:relative}.rec a:hover{color:#1a1a1a}.rec-category{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:#999;flex-shrink:0;width:22ch;display:inline-block}.rec-name{text-underline-offset:2px;font-weight:500;-webkit-text-decoration:underline #d4d0cb;text-decoration:underline #d4d0cb;transition:text-decoration-color .2s}.rec a:hover .rec-name{text-decoration-color:#1a1a1a}.rec-external{font-size:var(--text-xs);color:#aaa;vertical-align:baseline;margin-left:4px;transition:color .2s}.rec a:hover .rec-external{color:#666}.rec-tooltip{-webkit-backdrop-filter:blur(8px);color:#f5f3f0;font-size:var(--text-sm);pointer-events:none;opacity:0;z-index:10;background:#1a1a1ad9;border-radius:6px;width:max-content;max-width:240px;padding:8px 14px;line-height:1.5;transition:opacity .2s;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)}.rec-tooltip:after{content:"";border:5px solid #0000;border-right-color:#1a1a1ad9;position:absolute;top:50%;right:100%;transform:translateY(-50%)}.rec a:hover .rec-tooltip{opacity:1}footer{border-top:1px solid #d4d0cb;padding-top:32px}footer p{font-size:var(--text-base);color:#888}.footer-links{gap:20px;margin-top:12px;display:flex}.footer-links a{font-size:var(--text-base);color:#666;align-items:center;gap:5px;transition:color .2s;display:inline-flex}.footer-links a:hover{color:#1a1a1a}@media (width<=640px){.page{padding:48px 20px;overflow-x:hidden}.header-top h1{font-size:1.5rem}.avatar{width:64px;height:64px}.projects-grid{grid-template-columns:1fr}.rec-tooltip{display:none}}
