:root{--ink:#252820;--paper:#f8f6ee;--blue:#3558d4;--lime:#d7ed8d;--coral:#e78353;--muted:#62665c;--line:#2528202b;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:26px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}a,button,input{font:inherit;color:inherit}button{border:0}a{text-decoration:none}img{display:block;max-width:100%}a,button{-webkit-tap-highlight-color:transparent}:where(a,button,input):focus-visible{outline:3px solid var(--blue);outline-offset:5px}::selection{background:var(--lime);color:var(--ink)}.shell{width:min(1200px,calc(100% - 80px));margin-inline:auto}.eyebrow{font:600 11px/1.5 monospace;letter-spacing:.12em;margin:0;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:46px;padding:13px 20px;border:1px solid var(--ink);border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:transform .2s,box-shadow .2s}.button-dark{background:var(--ink);color:var(--paper)}.button:hover{transform:translateY(-2px);box-shadow:3px 4px 0 var(--coral)}.button span{font-size:20px;line-height:1}@media(max-width:1000px){.shell{width:calc(100% - 48px)}}@media(max-width:600px){.shell{width:calc(100% - 36px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::after,::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.site-header[data-view-app]{height:86px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.site-brand[data-view-app]{display:flex;align-items:center;font-weight:800;font-size:17px;letter-spacing:-.04em;white-space:nowrap}.brand-symbol[data-view-app]{font-size:32px;color:var(--blue);margin-right:10px}.brand-slash[data-view-app]{color:var(--blue);margin-inline:3px}.brand-note[data-view-app]{font-size:10px;font-weight:400;color:var(--muted);margin-left:18px;letter-spacing:.04em}.site-header nav[data-view-app]{display:flex;gap:28px;align-items:center}.site-header nav a[data-view-app]{font-size:12px;padding-block:13px;position:relative}.site-header nav a.active[data-view-app]{color:var(--blue)}.site-header nav a.active[data-view-app]:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:2px;background:var(--blue)}.site-footer[data-view-app]{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:90px;border-top:1px solid var(--line);font:10px/1.5 monospace;color:var(--muted)}.site-footer button[data-view-app]{background:0 0;font-size:12px;min-height:44px;cursor:pointer}.skip-link[data-view-app]{position:fixed;z-index:100;top:10px;left:10px;padding:12px;background:var(--ink);color:var(--paper);transform:translateY(-150%)}.skip-link[data-view-app]:focus{transform:translateY(0)}#main-content[data-view-app]:focus{outline:0}@media(max-width:600px){.site-header[data-view-app]{height:68px;gap:12px}.site-brand[data-view-app]{font-size:14px}.brand-symbol[data-view-app]{font-size:25px;margin-right:6px}.brand-note[data-view-app]{display:none}.site-header nav[data-view-app]{gap:15px}.site-header nav a[data-view-app]{font-size:11px}.site-footer[data-view-app]{min-height:76px;gap:10px}.footer-note[data-view-app]{display:none}}.project-byline[data-view-project-byline]{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:normal;font-weight:400;margin:18px 0 22px;max-width:650px;text-align:left;line-height:1.7}.project-byline p[data-view-project-byline]{font-size:12px;line-height:1.8;margin:0;color:inherit}.project-byline p span[data-view-project-byline]{display:block;font-size:10px;opacity:.7;margin-bottom:3px}.project-byline ul[data-view-project-byline]{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none}.project-byline li[data-view-project-byline]{font-size:10px;line-height:1.5;border:1px solid currentColor;border-radius:4px;padding:4px 7px}.project-card[data-view-project-card]{min-width:0;--card-accent:#d9e4ff}.category-server[data-view-project-card]{--card-accent:#f8d7bf}.category-tooling[data-view-project-card]{--card-accent:#dfedb2}.project-card>a[data-view-project-card]{display:block;border-radius:9px}.project-card figure[data-view-project-card]{position:relative;margin:0 0 18px;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:#e9e7df;border:1px solid var(--line);transition:transform .22s,box-shadow .22s}.project-card[data-view-project-card] img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.project-card .contain[data-view-project-card] img{object-fit:contain;padding:16px;background:#e7e9e0}.project-card a:hover figure[data-view-project-card]{transform:translateY(-4px);box-shadow:0 10px 20px #29251912}.project-card a[data-view-project-card]:hover img{transform:scale(1.025)}figcaption[data-view-project-card]{position:absolute;left:12px;top:12px;background:var(--card-accent);color:#252820;padding:6px 10px;border:1px solid #2528202b;border-radius:4px;font-size:10px;font-weight:600}.card-arrow[data-view-project-card]{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:31px;height:31px;background:var(--paper);border-radius:50%;font-size:18px;transition:transform .2s}.project-card a:hover .card-arrow[data-view-project-card]{transform:rotate(8deg)}.card-meta[data-view-project-card]{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font:9px/1.5 monospace;letter-spacing:.04em}.card-meta span[data-view-project-card]:first-child{max-width:85%}h3[data-view-project-card]{font-size:23px;line-height:1.3;letter-spacing:-.025em;margin:8px 0}p[data-view-project-card]{font-size:13px;line-height:1.8;margin:0;color:var(--muted)}.card-tags[data-view-project-card]{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.card-tags span[data-view-project-card]{font-size:10px;padding:4px 7px;border:1px solid var(--line);border-radius:4px;color:var(--muted)}@keyframes card-arrive-31773649{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:none}}.project-card[data-view-project-card]{animation:card-arrive-31773649 .25s ease-out}.project-image[data-view-project-image]{height:auto}.project-navigation[data-view-project-navigation]{padding-block:38px 48px;color:var(--ink)}.related[data-view-project-navigation]{padding-bottom:30px}.related h2[data-view-project-navigation]{font-size:19px;margin:0 0 16px}.related>div[data-view-project-navigation]{display:flex;flex-wrap:wrap;gap:10px}.related a[data-view-project-navigation]{font-size:13px;border:1px solid var(--line);border-radius:5px;min-height:44px;padding:12px 16px;display:flex;gap:22px}.project-pagination[data-view-project-navigation]{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;border-top:1px solid var(--line);padding-top:28px}.project-pagination a[data-view-project-navigation]{display:flex;flex-direction:column;gap:9px;padding-block:10px;min-height:44px}.project-pagination small[data-view-project-navigation]{font-size:11px;color:var(--muted)}.project-pagination strong[data-view-project-navigation]{font-size:17px;font-weight:600;overflow-wrap:anywhere}.project-pagination .next[data-view-project-navigation]{text-align:right}.project-pagination .all-projects[data-view-project-navigation]{display:flex;flex-direction:row;gap:16px;font-size:12px;padding:14px;border:1px solid var(--line);border-radius:5px}.project-pagination a[data-view-project-navigation]:hover,.related a[data-view-project-navigation]:hover{color:var(--blue)}@media(max-width:600px){.project-pagination[data-view-project-navigation]{grid-template-columns:1fr 1fr;gap:15px}.project-pagination .all-projects[data-view-project-navigation]{grid-row:2;grid-column:1/-1;justify-content:center}.project-pagination strong[data-view-project-navigation]{font-size:14px}.project-navigation[data-view-project-navigation]{padding-block:28px}.related h2[data-view-project-navigation]{font-size:17px}}