/* A personal page: clear type, useful links, and room to read. */
:root{color-scheme:light;--bg:#fff;--fg:#202124;--muted:#62656a;--line:#e8e9eb;--blue:#245bd6;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--muted);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}::selection{background:#dce8ff;color:#182c51}a{color:var(--fg);text-decoration:underline;text-decoration-color:#c9ccd1;text-underline-offset:4px;text-decoration-thickness:1px;transition:color .18s,text-decoration-color .18s}a:hover{color:var(--blue);text-decoration-color:var(--blue)}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,.contribution-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:5px;border-radius:2px}p{margin:0 0 16px}strong{font-weight:550;color:var(--fg)}
.page-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px max(28px,calc((100vw - 960px)/2));background:#ffffffed;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.page-nav a{text-decoration:none;font-size:14px;min-height:32px;display:inline-flex;align-items:center;color:var(--muted)}.page-nav .nav-name{color:var(--fg);font-weight:550;white-space:nowrap}.page-nav>div{display:flex;gap:25px}.page-nav a[aria-current],.page-nav a:hover{color:var(--blue)}
.home{max-width:760px;margin:80px auto 52px;padding:0 28px}.identity{position:relative;margin-bottom:26px}.blue-route,.reading-progress{display:none}.name-line{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:27px}h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(34px,4vw,46px);font-weight:400;line-height:1.15;letter-spacing:-1.4px;color:var(--fg);margin:0}.avatar-link{display:block;flex-shrink:0;border-radius:50%;line-height:0}.avatar-link img{display:block;width:66px;height:66px;border-radius:50%;object-fit:cover;filter:saturate(.85);transition:transform .3s var(--ease)}.avatar-link:hover img{transform:rotate(-4deg)}.identity p{max-width:620px;font-size:18px;line-height:1.75}.identity .major{font-size:inherit}.identity nav{display:flex;flex-wrap:wrap;gap:22px;margin-top:23px}.identity nav a{display:inline-flex;align-items:center;min-height:38px;font-size:15px}.intro{margin:26px 0 44px;max-width:640px}.intro p{margin:0}.section-heading{display:flex;align-items:baseline;gap:14px;font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--muted);margin:0 0 10px}.section-index{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#96999f;font-size:12px}.work,.background,.github-activity{scroll-margin-top:100px}.projects{margin:0;padding:0;list-style:none}.project{position:relative;padding:25px 0 27px 42px;border-bottom:1px solid var(--line)}.project:last-child{border-bottom:0}.project-icon{position:absolute;left:0;top:28px;display:grid;place-items:center;width:25px;height:25px;overflow:hidden;border-radius:5px;background:#f4f5f6;text-decoration:none}.project-icon img{width:24px;height:24px;object-fit:contain}.project-icon:has(img[src$="anglers.png"]){background:#254653}.project-icon img[src$="anglers.png"]{width:36px;height:36px;max-width:none}.row{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.project-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none}h3{font-size:18px;line-height:1.5;color:var(--fg);font-weight:550;letter-spacing:-.2px;margin:0}.project-link:hover h3{color:var(--blue)}.out{font-size:14px;color:#92969c}.when{font-size:13px;white-space:nowrap;flex-shrink:0;color:#7f8389;font-variant-numeric:tabular-nums}.role{font-size:14px;margin:3px 0 8px;color:#7b7e84}.project-summary{margin:7px 0 8px;font-size:16px;line-height:1.8;max-width:620px}.result{font-size:14px;margin:8px 0;color:#505862}.social-proof{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;margin-top:10px}.expand{display:flex;align-items:center;gap:9px;background:transparent;border:0;color:#62656a;font-size:14px;padding:6px 0;min-height:38px}.expand:hover{color:var(--blue)}.expand span{transition:transform .2s}.open .expand span{transform:rotate(45deg)}.note{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s var(--ease),opacity .2s}.note>div{overflow:hidden}.note p{margin:7px 0 12px;font-size:16px}.project.open .note{grid-template-rows:1fr;opacity:1}.background{margin-top:43px}.background .project{padding-top:20px;padding-bottom:21px}.background .project-icon{top:23px}.background .project-summary{margin-bottom:0}.yc-photo{display:inline-block;width:28px;height:31px;margin-left:5px}.yc-photo img{width:28px;height:31px;object-fit:cover;border-radius:3px;transform:rotate(5deg);transition:transform .25s var(--ease);position:relative;z-index:2}.yc-photo:hover img,.project-link:focus-visible .yc-photo img{transform:scale(3) rotate(0);box-shadow:0 8px 24px #0002}
.github-activity{margin-top:45px;border-top:1px solid var(--line);padding-top:31px}.activity-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.activity-heading h2{display:flex;align-items:center;gap:9px;color:var(--fg);font-size:16px;font-weight:500;margin:0}.activity-heading a{font-size:14px}.contribution-summary{font-size:14px;margin:0 0 18px}.contribution-summary strong{font-variant-numeric:tabular-nums}.contribution-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#d1d5db transparent;padding:13px 0 6px}.contribution-link{display:block;min-width:620px}.contribution-link img,.contribution-link svg{display:block;width:100%;height:auto}.contribution-link svg text{font-family:inherit;font-size:9px;fill:#757a82}.contribution-link svg rect{transition:opacity .15s}.contribution-link svg rect:hover{opacity:.7}.activity-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-top:8px;color:#81858c}.activity-footer p{margin:0}.activity-key{display:flex;align-items:center;gap:4px;white-space:nowrap}.activity-key i{width:9px;height:9px;border-radius:2px;background:#ebedf0}.activity-key i:nth-of-type(2){background:#c7ddff}.activity-key i:nth-of-type(3){background:#89b5f4}.activity-key i:nth-of-type(4){background:#4e87d9}.activity-key i:nth-of-type(5){background:#245bd6}
footer{margin-top:43px;padding-top:25px;border-top:1px solid var(--line);font-size:14px}footer p{display:flex;align-items:center;gap:8px;margin-bottom:12px}#copy{border:0;background:none;padding:9px;display:inline-flex;color:var(--blue)}#copy img{width:15px;height:15px;opacity:.6}#copy.copied img{display:none}#copy.copied::after{content:"✓";font-size:17px;line-height:15px}.meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:12px;color:#86898e}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-70px;left:20px;padding:10px;background:#fff;z-index:30}.skip-link:focus{top:10px}.scroll-reveal{opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .45s var(--ease)}.scroll-reveal.is-visible{opacity:1;transform:none}
@media(max-width:650px){html{scroll-padding-top:82px}.page-nav{padding:12px 22px;gap:16px}.page-nav>div{gap:16px}.page-nav a{font-size:14px}.home{margin:45px auto 32px;padding:0 24px}.name-line{gap:14px;margin-bottom:23px}h1{font-size:35px;letter-spacing:-1px}.avatar-link img{width:52px;height:52px}.identity p{font-size:17px}.identity nav{gap:19px}.intro{margin-bottom:34px}.project{padding:22px 0 24px 35px}.project-icon{top:25px;width:23px;height:23px}.row{flex-wrap:wrap;gap:2px 12px}.when{font-size:13px;white-space:normal}.project-summary{font-size:16px}.background .project-icon{top:23px}.activity-footer{flex-wrap:wrap}.work,.background,.github-activity{scroll-margin-top:82px}.background{margin-top:35px}.github-activity{margin-top:35px}.activity-heading h2{font-size:16px}.meta{font-size:12px}}
@media(max-width:380px){.page-nav{flex-wrap:wrap;gap:0;padding-block:8px}.page-nav>div{gap:18px}.page-nav .nav-name{margin-right:12px}.home{padding-inline:20px}h1{font-size:31px}.identity nav{gap:16px}.avatar-link img{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.scroll-reveal{opacity:1;transform:none}.page-nav{backdrop-filter:none}}
