*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}:root{--ink:#1a1a1a;--muted:#777;--link:#555;--link-hover:#000;--rule:#e0e0e0;--maxw:610px}html{background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.7;color:var(--ink);max-width:var(--maxw);margin:0 auto;padding:0 24px}h1{font-size:clamp(26px, 5vw, 36px);line-height:1.15;letter-spacing:-.015em;margin:12px 0 8px}h2{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}p{margin:0 0 1em;text-wrap:pretty}a{color:var(--link);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:3px;transition:color 0.15s ease,text-decoration-color 0.15s ease}a:hover{color:var(--link-hover);text-decoration-color:var(--ink)}header{padding:64px 0 48px;display:flex;justify-content:center}.headblock{display:inline-flex;align-items:center;gap:18px}.nameblock{display:flex;flex-direction:column;align-items:flex-start}@media (max-width:480px){.headblock{flex-direction:column;text-align:center}.nameblock{align-items:center}}.portrait{width:96px;height:96px;border-radius:50%;object-fit:cover;filter:grayscale(80%);transition:filter 0.4s ease,transform 0.4s ease,border-radius 0.4s ease}.portrait:hover{filter:grayscale(0%);transform:scale(1.04);border-radius:16px}.li-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--muted);text-decoration:none;transition:color 0.2s ease}.li-btn:hover{color:var(--ink);text-decoration:none}.intro{padding-bottom:40px}.intro h2{text-align:left}.intro ul{list-style:none;padding:0;margin:0}.intro li{padding:2px 0}footer{padding:24px 0 48px;text-align:center;font-size:13px;color:var(--muted);border-top:1px solid var(--rule)}.heart{display:inline-block;color:#e04848;font-size:1.1em;animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.3);opacity:1}}@media (max-width:480px){body{font-size:14px}header{padding:48px 0 36px}}