:root{--bg:#fff;--surface:#fff;--surface-soft:#fff;--surface-blue:#fff;--surface-green:#fff;--surface-warm:#fff;--ink:#17202a;--text:#344054;--muted:#667085;--faint:#98a2b3;--accent:#2563eb;--accent-green:#167a5b;--accent-warm:#a15c28;--max:1180px;--icon-reading:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 5.5c2.4-1 5-.8 8 .8v14c-3-1.6-5.6-1.8-8-.8zm16 0c-2.4-1-5-.8-8 .8v14c3-1.6 5.6-1.8 8-.8zm-8 .8v14M7 9.5c1-.1 2 .1 3 .5m7-.5c-1-.1-2 .1-3 .5'/%3E%3C/svg%3E");--icon-external:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 17 17 7m-7 0h7v7'/%3E%3C/svg%3E");--icon-mail:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 6h16v12H4zm0 1 8 6 8-6'/%3E%3C/svg%3E");--icon-wechat:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linejoin='round' stroke-width='2' d='M10.5 5C6.4 5 3 7.6 3 10.8c0 1.8 1 3.4 2.7 4.5L5 18l2.8-1.5q1.2.3 2.7.3c4.1 0 7.5-2.6 7.5-5.8s-3.4-6-7.5-6z'/%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 12.5c3.1.3 5.5 2.3 5.5 4.7 0 1.3-.7 2.5-1.9 3.3l.5 1.9-2-1.1q-1.05.3-2.1.3c-2.3 0-4.3-1-5.3-2.5M8 10h.1m4.9 0h.1'/%3E%3C/svg%3E");--icon-globe:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-width='2' d='M3 12h18m-9-9c3 3 3 15 0 18m0-18c-3 3-3 15 0 18'/%3E%3C/svg%3E");--icon-github:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .8C5.8.8.8 5.8.8 12c0 5 3.2 9.2 7.7 10.7.6.1.8-.2.8-.6V20c-3.1.7-3.8-1.3-3.8-1.3-.5-1.2-1.2-1.6-1.2-1.6-1-.7.1-.7.1-.7 1.1.1 1.7 1.1 1.7 1.1 1 .1 2.5.7 3.1.3.1-.7.4-1.2.7-1.5-2.5-.3-5.2-1.3-5.2-5.6 0-1.2.4-2.3 1.1-3.1-.1-.3-.5-1.5.1-3.1 0 0 .9-.3 3.2 1.2.9-.3 1.9-.4 2.9-.4s2 .1 2.9.4c2.3-1.5 3.2-1.2 3.2-1.2.6 1.6.2 2.8.1 3.1.7.8 1.1 1.9 1.1 3.1 0 4.4-2.7 5.3-5.2 5.6.4.4.8 1.1.8 2.1V22c0 .3.2.7.8.6 4.5-1.5 7.7-5.7 7.7-10.7C23.2 5.8 18.2.8 12 .8'/%3E%3C/svg%3E");--icon-linkedin:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='6.8' cy='6.6' r='2.1'/%3E%3Cpath d='M5.2 10h3.2v9H5.2zm5.8 0h3v1.2c.6-.9 1.6-1.5 3-1.5 2.3 0 3.8 1.5 3.8 4.6V19h-3.2v-4.3c0-1.3-.5-2.1-1.6-2.1-1 0-1.8.7-1.8 2.2V19H11z'/%3E%3C/svg%3E");--icon-x:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h4.5l4.2 5.7L17.5 4H20l-6.1 7.3 6.6 8.7H16l-4.8-6.4L5.9 20H3.4l6.5-7.8z'/%3E%3C/svg%3E");--icon-agent:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 5v3M8 5h8M6 9h12a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3v-5a3 3 0 0 1 3-3m2 5h.1m7.9 0h.1M9 17h6'/%3E%3C/svg%3E");--icon-graph:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-width='2' d='m7 7 10 3M7 7l4 10m6-7-6 7'/%3E%3Ccircle cx='7' cy='7' r='3' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='17' cy='10' r='3' fill='none' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='11' cy='17' r='3' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");--icon-knowledge:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linejoin='round' stroke-width='2' d='M4 5.5c2.5-1 5-.8 8 .5v14c-3-1.3-5.5-1.5-8-.5zm16 0c-2.5-1-5-.8-8 .5v14c3-1.3 5.5-1.5 8-.5z'/%3E%3C/svg%3E");--icon-bank:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 9h18l-9-5zm2 1v8m4-8v8m6-8v8m4-8v8M3 20h18'/%3E%3C/svg%3E");--icon-chart:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 19V5m0 14h16M7 15l3-4 4 3 5-7'/%3E%3C/svg%3E");--icon-package:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linejoin='round' stroke-width='2' d='m4 8 8-4 8 4-8 4zm0 0v8l8 4 8-4V8m-8 4v8'/%3E%3C/svg%3E");--icon-shield:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m12 3 8 3v6c0 5-3.4 8-8 9-4.6-1-8-4-8-9V6zm-3 9 2 2 4-5'/%3E%3C/svg%3E");--icon-layers:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linejoin='round' stroke-width='2' d='m12 3 9 5-9 5-9-5zM3 13l9 5 9-5M3 17l9 5 9-5'/%3E%3C/svg%3E");--icon-replay:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 7h7a6 6 0 1 1-5.2 9M7 7v5m0-5H2'/%3E%3C/svg%3E");--icon-database:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='5' fill='none' stroke='%23000' stroke-width='2' rx='8' ry='3'/%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M4 5v10c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 10c0 1.7 3.6 3 8 3s8-1.3 8-3'/%3E%3C/svg%3E");--icon-code:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m8 8-4 4 4 4m8-8 4 4-4 4M14 5l-4 14'/%3E%3C/svg%3E");--icon-drive:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='16' height='14' x='4' y='5' fill='none' stroke='%23000' stroke-width='2' rx='2'/%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-width='2' d='M8 15h.1m3.9 0h4M8 9h8'/%3E%3C/svg%3E");color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;font-size:16px;line-height:1.72;margin:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,ol,p,ul{margin:0}.skip-link{background:var(--ink);border-radius:8px;color:#fff;left:16px;padding:8px 12px;position:absolute;top:-44px;z-index:20}.skip-link:focus{top:16px}.site-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border-bottom:1px solid #eef2f6;padding:14px 0;position:sticky;top:0;z-index:10}.header-inner{background:#fff;border-radius:8px;gap:24px;justify-content:space-between;margin:0 auto;min-height:56px;padding:0 12px 0 18px;width:min(var(--max),calc(100% - 40px))}.brand,.header-inner{align-items:center;display:flex}.brand{color:var(--ink);gap:12px;line-height:1.1}.header-avatar{border-radius:999px;flex:0 0 42px;height:42px;-o-object-fit:cover;object-fit:cover;width:42px}.brand-copy{display:grid;gap:2px}.brand-name{font-weight:800;letter-spacing:0}.brand-subtitle{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:0}.site-nav{align-items:center;color:var(--muted);display:flex;font-size:16px;gap:4px}.site-nav a{border-radius:8px;padding:7px 12px}.site-nav a.active,.site-nav a:hover{background:var(--surface-soft);color:var(--ink)}.site-nav .language-switch{color:var(--ink);font-weight:800;margin-left:6px}.page,.product-hero,.section{margin:0 auto;width:min(var(--max),calc(100% - 40px))}.product-hero{align-items:center;display:grid;gap:58px;grid-template-columns:minmax(0,.88fr) minmax(430px,1.12fr);min-height:calc(100vh - 84px);padding:64px 0 78px}.hero-copy{max-width:720px}.kicker{color:var(--accent);font-size:13px;font-weight:800;letter-spacing:0;margin-bottom:12px}h1{font-size:clamp(34px,4vw,52px);line-height:1.12}h1,h2{color:var(--ink);letter-spacing:0}h2{font-size:clamp(23px,2.4vw,32px);line-height:1.28}h3{font-size:17px;letter-spacing:0;line-height:1.36}.lead,h3{color:var(--ink)}.lead{font-size:clamp(19px,2vw,24px);line-height:1.5;margin-top:22px}.lead.small{max-width:790px}.lead.small,.plain-text{color:var(--muted);font-size:17px}.plain-text{margin-top:22px}.link-row{display:flex;flex-wrap:wrap;font-weight:800;gap:10px;margin-top:32px}.link-row a,.text-link{align-items:center;color:var(--ink);display:inline-flex;min-height:36px}.link-row a{background:var(--surface);border-radius:8px;padding:8px 13px}.link-row a:first-child{background:var(--ink);color:#fff}.link-row a:after,.text-link:after{content:" ->"}.text-link[target=_blank]:after{background:currentColor;content:"";height:14px;margin-left:6px;-webkit-mask:var(--icon-external) center /contain no-repeat;mask:var(--icon-external) center /contain no-repeat;width:14px}.inline-link,.inline-link:hover,.link-row a:hover,.text-link:hover{color:var(--accent)}.inline-link{font-weight:700;text-underline-offset:3px}.inline-link:hover{text-decoration:underline}.hero-product-card{background:var(--surface);border-radius:8px;padding:14px}.hero-screenshot{background:var(--surface-soft);border-radius:8px;margin:0;padding:10px}.hero-screenshot img{aspect-ratio:16/9;border-radius:6px;-o-object-fit:contain;object-fit:contain;width:100%}.hero-points{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.contact-card,.content-section,.feature-card,.hero-points div,.note-block,.project-detail,.route-card,.timeline article,.word-grid span{background:var(--surface);border-radius:8px}.hero-points div{background:var(--surface-soft);padding:14px}.hero-points span,.index,.note-block span,.route-card span,.timeline span{color:var(--faint);display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;margin-bottom:14px}.hero-points strong{color:var(--ink);display:block;font-size:14px;line-height:1.35;margin-bottom:6px}.hero-points p{color:var(--muted);font-size:13px;line-height:1.55}.section{padding:62px 0}.section.compact{padding:46px 0 0;width:100%}.section-head{margin-bottom:28px;max-width:840px}.split-head{align-items:end;display:flex;gap:40px;justify-content:space-between;max-width:none}.split-head>p{color:var(--muted);max-width:430px}.feature-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.feature-card{min-height:210px;padding:22px}.feature-card:nth-child(2){background:var(--surface-green)}.feature-card:nth-child(3){background:var(--surface-blue)}.feature-card:nth-child(4){background:var(--surface-warm)}.feature-card span{color:var(--accent);display:inline-block;font-size:13px;font-weight:800;margin-bottom:28px}.feature-card:nth-child(2) span{color:var(--accent-green)}.feature-card:nth-child(4) span{color:var(--accent-warm)}.feature-card h3,.route-card h3{margin-bottom:10px}.capability-grid li,.capability-grid p,.content-section li,.content-section>p:not(.meta),.detail-grid li,.detail-grid p,.detail-head p,.feature-card p,.note-block p,.route-card p,.timeline p{color:var(--muted)}.showcase-grid{display:grid;gap:16px;grid-auto-rows:minmax(220px,auto);grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr)}.showcase-card{background:var(--surface);border-radius:8px;display:grid;gap:14px;padding:14px}.showcase-card.large{grid-row:span 2}.showcase-card img{aspect-ratio:16/9;background:var(--surface-soft);border-radius:6px;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:100%}.showcase-card.large img{-o-object-fit:contain;object-fit:contain}.showcase-card>div{padding:0 4px 4px}.showcase-card h3{margin:6px 0}.showcase-card p:not(.meta){color:var(--muted)}.route-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.route-card{min-height:210px;padding:22px;transition:background .16s ease}.route-card:nth-child(2){background:var(--surface-blue)}.route-card:nth-child(3){background:var(--surface-green)}.route-card:nth-child(4){background:var(--surface-warm)}.contact-card:hover,.route-card:hover,.showcase-card:hover{background:var(--surface)}.contact-cta-head{margin-left:auto;margin-right:auto;text-align:center}.home-contact-cta{display:flex;justify-content:center}.home-contact-button{align-items:center;background:var(--ink);border-radius:8px;color:#fff;display:inline-flex;font-size:18px;font-weight:800;justify-content:center;line-height:1.2;min-height:58px;min-width:min(320px,100%);padding:14px 34px}.home-contact-button:after{content:" ->"}.home-contact-button:hover{background:#0f1720}.page{padding:64px 0 92px}.page.narrow{max-width:920px}.page-head{max-width:900px;padding:0 0 46px}.with-sidebar{align-items:start;display:grid;gap:38px;grid-template-columns:220px minmax(0,1fr)}.content-nav{background:#ffffffeb;border-radius:8px;max-height:calc(100vh - 128px);overflow:auto;padding:16px;position:sticky;top:104px}.content-nav p{color:var(--ink);font-size:15px;font-weight:800;margin:0 0 10px}.content-nav a{border-radius:8px;color:var(--muted);display:block;font-size:16px;padding:8px 10px}.content-nav a:hover{background:var(--surface-soft);color:var(--ink)}.method-nav-list{display:grid;gap:2px}.content-stack{display:grid;gap:24px}.content-section,.project-detail{padding:28px;scroll-margin-top:108px}.content-section:nth-child(3n+2){background:var(--surface-blue)}.content-section:nth-child(3n){background:var(--surface-green)}.content-section h2{margin-bottom:10px}.capability-page .content-section h2,.method-page .content-section h2{align-items:center;display:flex;gap:10px}.capability-page .content-section h2:before,.method-page .content-section h2:before{background:currentColor;content:"";flex:0 0 22px;height:22px;-webkit-mask:var(--icon-reading) center /contain no-repeat;mask:var(--icon-reading) center /contain no-repeat;width:22px}.method-source{color:var(--muted);font-size:13px;line-height:1.55;margin-bottom:12px}.loading-text{background:var(--surface);border-radius:8px;color:var(--muted);padding:28px}.content-section ul{padding-left:20px}.content-section li{margin:8px 0}.detail-head{align-items:flex-start;display:flex;gap:24px;justify-content:space-between;margin-bottom:22px}.detail-head>div:first-child{max-width:820px}.meta{color:var(--accent);font-size:13px;font-weight:800;margin-bottom:8px}.project-detail .meta{align-items:center;display:flex;gap:8px;width:-moz-fit-content;width:fit-content}.project-detail .meta:before{background:currentColor;content:"";height:16px;-webkit-mask:var(--project-icon,var(--icon-package)) center /contain no-repeat;mask:var(--project-icon,var(--icon-package)) center /contain no-repeat;width:16px}#graphpilot{--project-icon:var(--icon-agent)}#relation-graph{--project-icon:var(--icon-graph)}#hovo{--project-icon:var(--icon-bank)}#graphrag{--project-icon:var(--icon-knowledge)}#guanlan{--project-icon:var(--icon-chart)}#a-share{--project-icon:var(--icon-drive)}.project-detail:nth-child(2n) .meta{color:var(--accent-green)}.project-detail:nth-child(3n) .meta{color:var(--accent-warm)}.detail-head h2{margin-bottom:10px}.text-link{color:var(--ink);flex:none;font-size:14px;font-weight:800}.link-pair{display:flex;flex-wrap:wrap;gap:16px}.wide-image{border-radius:8px;margin:0;overflow:hidden}.wide-image img{border-radius:8px;height:auto;width:100%}.capability-grid,.detail-grid{display:grid;gap:32px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);margin-top:22px}.capability-grid h3,.detail-grid h3{font-size:15px;margin-bottom:10px}.capability-grid ul,.detail-grid ul{padding-left:20px}.capability-grid li,.detail-grid li{margin:8px 0}.image-pair{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-list,.image-pair,.note-stack,.timeline{display:grid;gap:16px}.note-block,.timeline article{padding:28px}.note-block h2,.timeline h2{font-size:clamp(21px,2.4vw,30px);margin-bottom:12px}.note-block span,.timeline span{margin-bottom:12px}.word-grid{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.word-grid span{align-items:center;color:var(--ink);display:flex;font-weight:800;min-height:76px;padding:18px}.contact-group+.contact-group{margin-top:28px}.contact-profile{align-items:center;display:flex;gap:22px;margin-bottom:30px}.contact-avatar{border-radius:999px;flex:0 0 224px;height:224px;-o-object-fit:cover;object-fit:cover;width:224px}.contact-name{color:var(--ink);font-size:28px;font-weight:800;line-height:1.15}.contact-role{color:var(--muted);font-size:15px;font-weight:800;margin-top:8px}.contact-primary .contact-card{grid-template-columns:34px 140px minmax(0,1fr);padding:28px 24px}.contact-primary .contact-card:before{height:24px;width:24px}.contact-primary strong{color:var(--ink);font-size:18px}.contact-secondary .contact-list{gap:6px}.contact-secondary .contact-card{gap:10px;grid-template-columns:28px 120px minmax(0,1fr);padding:12px 18px}.contact-secondary .contact-card:before{background:var(--muted);height:18px;width:18px}.contact-secondary span{font-size:13px}.contact-secondary strong{color:var(--muted);font-size:14px;line-height:1.35}.contact-list{display:grid;gap:14px;grid-template-columns:1fr}.contact-card{align-items:center;background:var(--surface);border-radius:8px;display:grid;gap:16px;grid-template-columns:32px 160px minmax(0,1fr);padding:24px;transition:background .16s ease}.contact-card:before{background:var(--accent);content:"";height:22px;-webkit-mask:var(--contact-icon,var(--icon-external)) center /contain no-repeat;mask:var(--contact-icon,var(--icon-external)) center /contain no-repeat;width:22px}.contact-mail{--contact-icon:var(--icon-mail)}.contact-wechat{--contact-icon:var(--icon-wechat)}.contact-github{--contact-icon:var(--icon-github)}.contact-linkedin{--contact-icon:var(--icon-linkedin)}.contact-x{--contact-icon:var(--icon-x)}.contact-list .contact-card:nth-child(2){background:var(--surface-blue)}.contact-list .contact-card:nth-child(3){background:var(--surface-green)}.contact-list span{color:var(--muted);grid-column:2}.contact-list strong{color:var(--ink);grid-column:3;overflow-wrap:anywhere}.contact-card[target=_blank] strong:after{background:currentColor;content:"";display:inline-block;height:14px;margin-left:8px;-webkit-mask:var(--icon-external) center /contain no-repeat;mask:var(--icon-external) center /contain no-repeat;vertical-align:-2px;width:14px}.site-footer{background:#f8fafc;border-top:1px solid #e6eaf0;color:var(--muted);font-size:15px;margin:0;width:100%}.footer-inner{align-items:end;display:grid;gap:28px;grid-template-columns:minmax(0,1fr) auto;margin:0 auto;padding:34px 0 52px;width:min(var(--max),calc(100% - 40px))}.footer-profile{align-items:center;display:flex;gap:14px}.footer-avatar{border-radius:999px;flex:0 0 54px;height:54px;-o-object-fit:cover;object-fit:cover;width:54px}.footer-brand{color:var(--ink);font-size:18px;font-weight:800;margin-bottom:6px}.footer-note{max-width:460px}.footer-contact-link{color:var(--muted);display:inline-flex;font-weight:800}.footer-contact-link:hover{color:var(--ink)}.footer-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.footer-links a{align-items:center;border-radius:8px;color:var(--muted);display:inline-flex;font-weight:800;gap:8px;padding:7px 10px}.footer-links a:before{background:currentColor;content:"";height:17px;-webkit-mask:var(--footer-icon,var(--icon-external)) center /contain no-repeat;mask:var(--footer-icon,var(--icon-external)) center /contain no-repeat;width:17px}.footer-links a[href*="github.com"]{--footer-icon:var(--icon-github)}.footer-links a[href*="linkedin.com"]{--footer-icon:var(--icon-linkedin)}.footer-links a[href*="x.com"]{--footer-icon:var(--icon-x)}.footer-links a:hover{background:var(--surface-soft);color:var(--ink)}@media (max-width:1040px){.product-hero{grid-template-columns:1fr;min-height:auto}.feature-grid,.route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.showcase-grid{grid-template-columns:1fr}.showcase-card.large{grid-row:auto}.with-sidebar{gap:28px;grid-template-columns:1fr}.content-nav{display:grid;gap:0 8px;grid-template-columns:repeat(3,minmax(0,1fr));position:static}.content-nav p{grid-column:1/-1}}@media (max-width:720px){.header-inner,.page,.product-hero,.section{width:min(100% - 28px,var(--max))}.site-header{padding:8px 0}.header-inner{align-items:flex-start;flex-direction:column;gap:2px;justify-content:center;min-height:72px}.site-nav{flex-wrap:wrap;font-size:15px;gap:4px}.site-nav a{padding:5px 8px}.brand-subtitle{font-size:10px}.page,.product-hero{padding-bottom:58px;padding-top:38px}.product-hero{gap:32px}h1{font-size:34px}.lead,.lead.small{font-size:17px}.plain-text{font-size:15px}.capability-grid,.detail-grid,.feature-grid,.hero-points,.image-pair,.route-grid,.word-grid{grid-template-columns:1fr}.content-nav{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.content-section,.note-block,.project-detail,.timeline article{padding:20px}.detail-head{display:block}.detail-head .text-link,.link-pair{margin-top:12px}.contact-profile{gap:16px;margin-bottom:24px}.contact-avatar{flex-basis:172px;height:172px;width:172px}.contact-name{font-size:24px}.contact-card{gap:4px 14px;grid-template-columns:30px 1fr}.contact-card:before{grid-row:1/span 2}.contact-list span,.contact-list strong{grid-column:2}.footer-inner{gap:18px;grid-template-columns:1fr;width:min(100% - 28px,var(--max))}.footer-avatar{flex-basis:48px;height:48px;width:48px}.footer-links{justify-content:flex-start}}
