:root{color:#1c1d20;background:#f8f8f6;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;--page-width: 520px;--text: #1c1d20;--muted: #777a82;--faint: #a2a4aa;--line: rgba(28, 29, 32, .1);--surface: rgba(255, 255, 255, .82)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;background:#f8f8f6;color:var(--text);font-size:15px;line-height:1.65;letter-spacing:0}button{font:inherit}.page-shell{width:min(var(--page-width),calc(100% - 32px));margin:0 auto;padding:40px 0 120px}.avatar{width:120px;height:120px;margin:0 0 28px;border-radius:50%;overflow:hidden}.avatar-img{display:block;width:100%;height:100%;object-fit:cover;object-position:55% 38%}.intro{display:grid;gap:14px}.intro p,.footer p,.dialog-panel p{margin:0}.intro strong{font-weight:650;text-decoration:underline;text-decoration-color:#1c1d2038;text-underline-offset:4px}.section,.footer{margin-top:72px}.section h2,.footer h2{margin:0 0 22px;color:var(--muted);font-size:15px;font-weight:450;line-height:1.5}.project-list,.link-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.project-row,.link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;min-height:78px;border-top:1px solid var(--line)}.project-row:last-child,.link-row:last-child{border-bottom:1px solid var(--line)}.project-copy,.link-row>div{display:grid;gap:2px;min-width:0}.project-copy strong,.link-row strong{font-size:15px;font-weight:600}.project-copy span,.link-row div span,.footer>p,.dialog-panel>p{color:#656870}.project-meta,.status{color:var(--muted);font-size:13px;white-space:nowrap}.footer{display:grid;justify-items:start}.footer h2{margin-bottom:16px}.contact-button,.dialog-close{margin-top:24px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);cursor:pointer;padding:10px 16px;transition:background-color .16s ease,border-color .16s ease}.contact-button:hover,.dialog-close:hover{border-color:#1c1d202e;background:#1c1d200a}.contact-button:focus-visible,.dialog-close:focus-visible,.floating-contact:focus-visible{outline:2px solid #2b67d1;outline-offset:3px}.signature{margin-top:56px!important;color:var(--faint)!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.floating-contact{position:fixed;z-index:10;left:50%;bottom:24px;transform:translate(-50%);min-width:144px;min-height:46px;padding:0 22px;border:1px solid rgba(28,29,32,.1);border-radius:999px;background:#fafaf8d6;box-shadow:0 12px 32px #191b201f;color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.contact-dialog{width:min(420px,calc(100% - 32px));margin:auto;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text)}.contact-dialog::backdrop{background:#14151847;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-panel{padding:28px;border:1px solid rgba(28,29,32,.08);border-radius:6px;background:#fbfbf9;box-shadow:0 24px 80px #14151829}.dialog-eyebrow{margin-bottom:12px!important;color:var(--muted)!important;font-size:13px}.dialog-panel h2{margin:0 0 12px;font-size:20px;font-weight:600;line-height:1.35}@media(max-width:600px){.page-shell{padding-top:16px}.avatar{width:112px;height:112px;margin-bottom:24px}.avatar-img{object-position:55% 38%}.section,.footer{margin-top:64px}.project-row,.link-row{min-height:82px;gap:14px}.project-copy span,.link-row div span{font-size:14px;line-height:1.55}.floating-contact{bottom:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
