:root{--paper: #f4f4f3;--ink: #3f3f6d;--ink-rgb: 63 63 109;--ink-strong: #121314;--mark-rgb: 161 218 192;--mark: rgb(var(--mark-rgb) / 82%);--line: var(--ink);--line-width: 1px;--card: #ffffff;--font-sans: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-serif: "Noto Serif SC SemiBold", "Noto Serif SC", "Songti SC", STSong, Georgia, serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-size-ui: 14px;--panel-topbar-height: 50px;--mobile-page-top: 24px;--mobile-page-gutter: 18px}*{box-sizing:border-box}[hidden]{display:none!important}::selection{background:var(--mark);color:var(--ink-strong)}html,body{margin:0;min-height:100%;background:var(--paper)}body{overflow:hidden;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}.page{display:grid;width:100%;min-height:100vh;place-items:center;overflow:hidden;padding:60px clamp(32px,6vw,220px);background:var(--paper)}.sheet{display:grid;max-width:100%;width:min(1480px,100%);height:min(960px,calc(100vh - 120px));min-height:560px;grid-template-columns:repeat(2,minmax(375px,1fr))}.detail-view{grid-template-columns:minmax(0,2fr) minmax(375px,1fr)}.intro,.projects,.detail-preview,.detail-info{display:flex;max-width:100%;min-width:0;min-height:0;flex-direction:column;overflow:hidden;border:var(--line-width) solid var(--line)}.intro{background:var(--card)}.projects{gap:0;border-left:0;background:var(--paper)}.detail-preview{gap:0;background:var(--card)}.detail-info{border-left:0;background:var(--paper)}.panel-topbar{display:flex;height:var(--panel-topbar-height);flex:0 0 var(--panel-topbar-height);align-items:center;overflow:hidden;border-bottom:var(--line-width) solid var(--line);padding:16px;color:var(--ink);font-family:var(--font-mono);font-size:var(--font-size-ui);font-weight:400;line-height:1.5}.panel-topbar p{margin:0}.intro-topbar{gap:10px}.mobile-home-sticky,.mobile-detail-sticky,.mobile-link-preview{display:none}.intro-topbar p:first-child{flex:1 1 auto;min-width:0}.intro-topbar p:last-child{flex:0 0 auto;font-size:inherit;white-space:nowrap}.projects-topbar{justify-content:center}.back-button{width:100%;gap:8px;border:0;border-bottom:var(--line-width) solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;justify-content:flex-start;text-align:left;text-decoration:none}.back-button img{display:block;width:16px;height:16px;flex:0 0 auto}.back-button span{flex:0 0 auto}.detail-titlebar{justify-content:flex-start;background:var(--paper);font-family:var(--font-sans);font-size:var(--font-size-ui)}.detail-titlebar p:focus{outline:0}.detail-media-carousel{display:flex;min-height:0;flex:1 1 auto;flex-direction:column}.detail-media-controls{display:none}#intro-content{display:contents}.intro-main{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:32px;overflow-y:auto;padding:32px 64px}.intro-heading{display:flex;width:100%;flex:0 0 auto;align-items:flex-end;gap:10px}h1{min-width:0;flex:1 1 auto;margin:0;color:var(--ink);font-family:var(--font-serif);font-size:32px;font-weight:600;letter-spacing:0;line-height:normal;overflow-wrap:anywhere}.avatar-frame{display:grid;width:82px;height:82px;flex:0 0 auto;margin:0;place-items:center;overflow:hidden;border:var(--line-width) solid var(--line);background:var(--paper)}.avatar-frame img{display:block;width:80px;height:80px;object-fit:cover;object-position:center top}.rule{width:100%;height:1px;flex:0 0 auto;background:var(--line)}.copy{display:flex;width:100%;flex:1 1 auto;flex-direction:column;gap:24px;color:var(--ink);font-size:14px;font-weight:400;letter-spacing:0;line-height:1.8;overflow-wrap:anywhere}.copy p,.list p,.copy ul,.copy ol{width:100%;margin:0}.list{display:flex;width:100%;flex-direction:column}.copy ul,.copy ol{padding-left:1.4em}.copy li+li{margin-top:6px}.contact-links{position:relative;display:flex;width:100%;height:40px;flex:0 0 40px;align-items:center;gap:20px;margin-top:auto;overflow:visible}.contact-link{position:relative;display:inline-flex;align-items:center;gap:4px;padding:0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:14px;line-height:1.5;text-decoration:underline;text-decoration-thickness:from-font;text-underline-offset:2px;white-space:nowrap}.contact-link:hover,.contact-link:focus-visible{color:var(--ink-strong)}.contact-link:focus-visible{outline:1px solid var(--ink);outline-offset:3px}.contact-link-icon{display:block;width:16px;height:16px;flex:0 0 16px;background:currentColor;mask:var(--contact-icon) center / contain no-repeat;-webkit-mask:var(--contact-icon) center / contain no-repeat}.contact-link-icon--qr{--contact-icon: url("data:image/svg+xml,%3csvg%20width='12'%20height='12'%20viewBox='0%200%2012%2012'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.5%201.5H2C1.72386%201.5%201.5%201.72386%201.5%202V3.5C1.5%203.77614%201.72386%204%202%204H3.5C3.77614%204%204%203.77614%204%203.5V2C4%201.72386%203.77614%201.5%203.5%201.5Z'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M10%201.5H8.5C8.22386%201.5%208%201.72386%208%202V3.5C8%203.77614%208.22386%204%208.5%204H10C10.2761%204%2010.5%203.77614%2010.5%203.5V2C10.5%201.72386%2010.2761%201.5%2010%201.5Z'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M3.5%208H2C1.72386%208%201.5%208.22386%201.5%208.5V10C1.5%2010.2761%201.72386%2010.5%202%2010.5H3.5C3.77614%2010.5%204%2010.2761%204%2010V8.5C4%208.22386%203.77614%208%203.5%208Z'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M10.5%208H9C8.73478%208%208.48043%208.10536%208.29289%208.29289C8.10536%208.48043%208%208.73478%208%209V10.5'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M10.5%2010.5V10.505'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6%203.5V5C6%205.26522%205.89464%205.51957%205.70711%205.70711C5.51957%205.89464%205.26522%206%205%206H3.5'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M1.5%206H1.505'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6%201.5H6.005'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6%208V8.005'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M8%206H8.5'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M10.5%206V6.005'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6%2010.5V10'%20stroke='%233F3F6D'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e")}.contact-link-icon--arrow{--contact-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7%2017L17%207'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M7%207H17V17'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e")}.wechat-qrcode{position:absolute;bottom:calc(100% + 16px);left:0;z-index:20;display:block;width:150px;height:150px;padding:0;opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .14s ease,transform .14s ease}.wechat-qrcode img{display:block;width:100%;height:100%;object-fit:cover}.contact-link--wechat:hover .wechat-qrcode,.contact-link--wechat:focus-visible .wechat-qrcode{opacity:1;transform:translateY(0)}.projects-list{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:32px;overflow-y:auto;padding:32px}.project-card{display:flex;width:100%;flex:0 0 auto;flex-direction:column;scroll-margin-top:32px}.project-card-link{display:flex;width:100%;flex-direction:column;gap:8px;color:inherit;cursor:pointer;text-decoration:none}.project-card-link:focus-visible{outline:1px solid var(--ink);outline-offset:3px}.project-media{position:relative;display:block;width:100%;aspect-ratio:var(--media-aspect-ratio, 676 / 350);overflow:hidden;border:var(--line-width) solid var(--line);background:var(--paper);color:var(--ink);transition:filter .16s ease}.project-media:after{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%3e%3cg%20fill='rgba(0,0,0,0.5)'%3e%3cpath%20d='M0%200h25v25H0zM25%2025h25v25H25z'/%3e%3c/g%3e%3c/svg%3e");background-position:0 0;background-repeat:repeat;background-size:3px 3px;content:"";opacity:0;pointer-events:none;transition:opacity .16s ease}.project-card-link:hover .project-media,.project-card-link:focus-visible .project-media{filter:saturate(0)}.project-card-link:hover .project-media:after,.project-card-link:focus-visible .project-media:after{opacity:1}.project-media img,.project-media video{display:block;width:100%;height:100%;object-fit:cover}.project-media--model,.project-media--video{aspect-ratio:var(--media-aspect-ratio, 676 / 350)}.project-media--video video{object-fit:cover}.project-model-viewer{position:relative;display:block;width:100%;height:100%;pointer-events:none}.project-model-viewer canvas{display:block;width:100%;height:100%}.project-model-placeholder{display:flex;width:100%;height:100%;min-height:180px;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ink);font-family:var(--font-mono);font-size:12px;line-height:1.5;text-align:center}.project-model-placeholder span:first-child{color:var(--ink-strong);font-size:14px}.project-meta{display:flex;width:100%;align-items:flex-start;gap:10px;color:var(--ink);font-size:12px;line-height:1.5}.project-meta p{margin:0}.project-meta p:first-child{min-width:0;flex:1 1 auto;font-family:var(--font-mono)}.project-title{display:inline-flex;align-items:center;gap:4px}.project-title span{min-width:0}.project-title-text{position:relative;display:inline;isolation:isolate}.project-title-text:after{position:absolute;z-index:-1;top:60%;right:-.1em;bottom:10%;left:-.1em;background:var(--mark);content:"";opacity:0;transition:top .2s cubic-bezier(0,.8,.13,1),opacity .16s ease}.project-card--focused .project-title-text:after,.project-card-link:focus-visible .project-title-text:after,.project-card-link:hover .project-title-text:after{opacity:1}.project-title-icon{display:block;width:12px;height:12px;flex:0 0 auto}.project-meta p:last-child{flex:0 0 auto;font-family:var(--font-sans);white-space:nowrap}.detail-media-list{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;align-items:center;gap:24px;overflow-y:auto;padding:24px}.detail-media-item{display:flex;width:min(708px,100%);flex:0 0 auto;flex-direction:column;align-items:center;gap:8px;margin:0}.detail-media-frame{position:relative;display:block;width:100%;aspect-ratio:var(--media-aspect-ratio, 16 / 9);overflow:hidden;background:var(--paper)}.detail-media-frame:after{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;border:var(--line-width) solid var(--line);pointer-events:none;content:""}.detail-media-frame img,.detail-media-frame video{display:block;width:100%;height:100%;object-fit:contain}.detail-media-frame--model,.detail-media-frame--video{aspect-ratio:var(--media-aspect-ratio, 676 / 350)}.detail-media-frame--video video{object-fit:contain}.detail-video-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;margin:0;padding:24px;color:var(--ink);text-align:center;background:color-mix(in srgb,var(--paper) 92%,transparent)}.detail-video-fallback a{color:inherit;text-decoration:underline;text-underline-offset:3px}.detail-media-frame--image img{object-fit:cover}.detail-model-viewer{position:relative;width:100%;height:100%;pointer-events:auto;touch-action:auto}.detail-model-viewer.is-interactive{touch-action:none}.detail-model-viewer canvas{display:block;width:100%;height:100%}.detail-model-viewer.is-interactive canvas{cursor:grab}.detail-model-viewer.is-interactive:active canvas{cursor:grabbing}.detail-media-item figcaption{width:min(708px,100%);color:var(--ink);font-family:var(--font-mono);font-size:12px;line-height:1.5;text-align:center}.detail-copy{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:32px;overflow-y:auto;padding:16px;background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:var(--font-size-ui);line-height:1.8}.detail-next-link{display:flex;min-width:0;height:var(--panel-topbar-height);flex:0 0 var(--panel-topbar-height);align-items:center;justify-content:center;gap:8px;overflow:hidden;border-top:var(--line-width) solid var(--line);padding:16px;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--font-size-ui);line-height:1.5;text-decoration:none;-webkit-tap-highlight-color:transparent}.detail-next-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-next-link img{display:block;width:16px;height:16px;flex:0 0 16px;transform:rotate(180deg)}.detail-next-link:focus-visible{outline:0;background:var(--card)}@media (hover: hover) and (pointer: fine){.detail-next-link:hover{background:var(--card)}}.detail-next-link:active{background:color-mix(in srgb,var(--paper) 70%,var(--card))}.detail-meta{display:flex;width:100%;flex-direction:column;gap:8px;margin:0}.detail-meta div{display:flex;width:100%;align-items:flex-start;gap:32px}.detail-meta dt{min-width:0;flex:1 1 auto}.detail-meta dd{display:flex;width:160px;flex:0 0 160px;flex-direction:column;gap:4px;margin:0}.detail-section{display:flex;width:100%;flex-direction:column;gap:8px}.detail-section h2,.detail-section p{margin:0;color:var(--ink);font-family:var(--font-mono);font-size:inherit;font-weight:400;line-height:inherit}.model-loader{position:absolute;z-index:1;top:50%;left:50%;display:grid;width:40px;height:40px;place-items:center;pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .18s ease}.model-loader:before,.model-loader:after{position:absolute;border:1px solid rgb(var(--ink-rgb) / 34%);content:""}.model-loader:before{width:34px;height:34px;animation:model-loader-spin .9s linear infinite}.model-loader:after{width:12px;height:12px;border-color:rgb(var(--ink-rgb) / 80%)}.project-model-viewer.is-loading .model-loader,.detail-model-viewer.is-loading .model-loader,.mobile-link-preview-model.is-loading .model-loader{opacity:1}@keyframes model-loader-spin{to{transform:rotate(1turn)}}.rich-link{position:relative;display:inline;color:var(--ink-strong);text-decoration:none;vertical-align:baseline;white-space:nowrap}.rich-link:focus-visible{outline:1px solid var(--ink);outline-offset:3px}.link-icon{display:inline-flex;width:16px;height:16px;flex:0 0 auto;align-items:center;justify-content:center;margin-right:.28em;color:var(--ink);font-size:1em;line-height:1;vertical-align:-.18em}.link-icon svg,.link-icon img{display:block;width:16px;height:16px}.link-text{position:relative;display:inline;isolation:isolate}.link-text:after{position:absolute;z-index:-1;top:60%;right:-.1em;bottom:10%;left:-.1em;background:var(--mark);content:"";transition:top .2s cubic-bezier(0,.8,.13,1)}.rich-link:hover .link-text:after,.rich-link:focus-visible .link-text:after{top:10%}.thin-scrollbar{scrollbar-width:none}.thin-scrollbar::-webkit-scrollbar{display:none}.thin-scrollbar-frame{position:relative;--scrollbar-width: 6px;--scrollbar-right: 6px;--scrollbar-inset-top: 8px;--scrollbar-inset-bottom: 8px;--scrollbar-min-thumb-height: 32px}.thin-scrollbar-thumb{position:absolute;top:0;right:var(--scrollbar-right);z-index:12;display:block;width:var(--scrollbar-width);min-height:var(--scrollbar-min-thumb-height);opacity:0;border-radius:999px;background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='50'%20height='50'%3e%3cg%20fill='rgba(0,0,0,0.5)'%3e%3cpath%20d='M0%200h25v25H0zM25%2025h25v25H25z'/%3e%3c/g%3e%3c/svg%3e");background-position:0 0;background-repeat:repeat;background-size:3px 3px;pointer-events:none;transition:opacity .16s ease}.thin-scrollbar-frame.has-thin-scrollbar .thin-scrollbar-thumb{opacity:.3}.thin-scrollbar-frame.has-thin-scrollbar:hover .thin-scrollbar-thumb,.thin-scrollbar-frame.has-thin-scrollbar:focus-within .thin-scrollbar-thumb{opacity:.6}@media (max-width: 980px){body{overflow:auto}.page{--compact-page-top: 32px;--compact-page-gutter: 24px;display:block;min-height:100vh;overflow:visible;padding:var(--compact-page-top) var(--compact-page-gutter) 48px}.detail-view,.mobile-detail-sticky{background:var(--paper)}.mobile-home-sticky,.mobile-detail-sticky{position:sticky;top:0;z-index:20;display:block;width:calc(100% + var(--compact-page-gutter) + var(--compact-page-gutter));height:calc(var(--compact-page-top) + var(--panel-topbar-height));align-self:start;margin:calc(0px - var(--compact-page-top)) calc(0px - var(--compact-page-gutter)) calc(0px - var(--panel-topbar-height));overflow:hidden;padding:var(--compact-page-top) var(--compact-page-gutter) 0;background:var(--paper)}.mobile-home-topbar,.mobile-detail-topbar{display:flex;width:100%;border:var(--line-width) solid var(--line);background:var(--card)}.mobile-home-topbar.is-projects-context{justify-content:center;background:var(--paper)}.mobile-home-topbar.is-projects-context p:first-child{flex:0 0 auto}.intro{padding-top:var(--panel-topbar-height)}.intro>.intro-topbar{display:none}.detail-preview{gap:0;padding-top:calc(var(--panel-topbar-height) - var(--line-width))}.detail-preview>.back-button{display:none}.sheet{width:100%;height:auto;min-height:0;grid-template-columns:minmax(0,1fr)}.intro,.projects,.detail-preview,.detail-info{min-height:0;overflow:visible}.projects,.detail-info{border-top:0;border-left:var(--line-width) solid var(--line)}.intro-main,.projects-list,.detail-media-list,.detail-copy{overflow:visible}.project-media--model,.detail-media-frame--model{aspect-ratio:676 / 350}.detail-media-list{display:block;overflow:hidden;padding:0}.detail-media-list[data-carousel-ready=true] .detail-media-item{display:none}.detail-media-list[data-carousel-ready=true] .detail-media-item.is-active{display:flex;animation:detail-media-enter .18s ease-out}.detail-media-item{width:100%;gap:0}.detail-media-frame,.detail-media-frame--model,.detail-media-frame--video{aspect-ratio:var(--detail-carousel-aspect-ratio, 16 / 9)}.detail-media-frame:after{border-width:0}.detail-media-item figcaption{display:none}.detail-media-controls{display:grid;width:100%;height:36px;flex:0 0 36px;grid-template-columns:36px minmax(0,1fr) 36px;border-top:var(--line-width) solid var(--line);background:var(--card)}.detail-media-controls.has-single-item{grid-template-columns:minmax(0,1fr)}.detail-media-button{display:grid;width:36px;height:35px;margin:0;place-items:center;border:0;border-radius:0;padding:0;color:var(--ink);background:var(--card);cursor:pointer;-webkit-tap-highlight-color:transparent}.detail-media-button--previous{border-right:var(--line-width) solid var(--line)}.detail-media-button--next{border-left:var(--line-width) solid var(--line)}.detail-media-button img{display:block;width:16px;height:16px}.detail-media-button:hover,.detail-media-button:focus-visible{outline:0;background:var(--paper)}.detail-media-button:active:not(:disabled){background:color-mix(in srgb,var(--paper) 70%,var(--card))}.detail-media-button:disabled{cursor:default;opacity:.38}.detail-media-caption{align-self:center;min-width:0;margin:0;overflow:hidden;padding:0 10px;color:var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:400;line-height:1.5;text-align:center;text-overflow:ellipsis;white-space:nowrap}}@media (max-width: 720px){body,.page{background:var(--paper)}.page{--compact-page-top: var(--mobile-page-top);--compact-page-gutter: var(--mobile-page-gutter);padding:var(--mobile-page-top) var(--mobile-page-gutter) 40px}.mobile-link-preview{--mobile-link-preview-media-max-height: calc(100vh - 190px) ;--mobile-link-preview-media-max-height: calc(100dvh - 190px) ;position:fixed;z-index:40;right:0;bottom:0;left:0;display:block;visibility:hidden;padding:18px;border-top:var(--line-width) solid var(--line);background:var(--card);pointer-events:none;transform:translateY(100%);transition:transform .22s cubic-bezier(.22,1,.36,1),visibility 0s linear .22s}.mobile-link-preview.is-visible{visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}.mobile-link-preview-link{display:flex;flex-direction:column;gap:8px;color:inherit;text-decoration:none}.mobile-link-preview-media{display:flex;width:100%;max-height:var(--mobile-link-preview-media-max-height);align-items:center;justify-content:center;margin:0;overflow:hidden;border:var(--line-width) solid var(--line);background:var(--paper)}.mobile-link-preview-media img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(var(--mobile-link-preview-media-max-height) - 2px);object-fit:contain}.mobile-link-preview-media.is-icon{display:grid;place-items:center}.mobile-link-preview-media.is-icon img{width:64px;height:64px;object-fit:contain}.mobile-link-preview-model{position:relative;display:block;width:100%;height:100%;pointer-events:none}.mobile-link-preview-model canvas{display:block;width:100%;height:100%}.mobile-link-preview-meta{display:flex;min-width:0;flex-direction:column;gap:2px}.mobile-link-preview-title,.mobile-link-preview-category{margin:0;font-size:12px;font-weight:400;line-height:1.5}.mobile-link-preview-title{display:flex;min-width:0;align-items:center;gap:4px;font-family:var(--font-mono)}.mobile-link-preview-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-link-preview-title img{width:12px;height:12px;flex:0 0 12px}.mobile-link-preview-category{overflow:hidden;color:rgb(var(--ink-rgb) / 68%);text-overflow:ellipsis;white-space:nowrap}.panel-topbar{padding:16px}.intro-main{gap:28px;padding:32px 28px}.avatar-frame{width:72px;height:72px}.avatar-frame img{width:70px;height:70px}.projects{gap:0}.projects-list{gap:24px;padding:24px}.project-meta{flex-direction:column;align-items:flex-start;gap:2px}.project-meta p:first-child,.project-meta p:last-child{flex:0 1 auto}.project-meta p:last-child{color:rgb(var(--ink-rgb) / 68%);white-space:normal}.detail-copy{padding:16px;line-height:1.6}.detail-meta div{gap:16px}.detail-meta dd{width:136px;flex-basis:136px}}@media (prefers-reduced-motion: reduce){.mobile-link-preview{transition:none}.detail-media-list[data-carousel-ready=true] .detail-media-item.is-active{animation:none}}@keyframes detail-media-enter{0%{opacity:0}to{opacity:1}}
