:root{color-scheme:light dark;--paper: #f8faf9;--paper-soft: #f1f6f3;--ink: #1f2a26;--ink-soft: #3e514a;--muted: #5a6e66;--line: #dfe8e3;--line-strong: #c9d8d1;--accent: #2f7d6a;--accent-ink: #225e50;--accent-soft: #e6f1ed;--on-accent: #f7fbf9;--font-serif: "Songti SC", "Noto Serif SC", "Source Han Serif SC", "Iowan Old Style", Georgia, serif;--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--max: 1080px;--radius: 12px}@media(prefers-color-scheme:dark){:root{--paper: #121a17;--paper-soft: #17211d;--ink: #e7efeb;--ink-soft: #c3d1cb;--muted: #9db0a8;--line: #273430;--line-strong: #354741;--accent: #6cc3aa;--accent-ink: #8ed8c1;--accent-soft: #1c302a;--on-accent: #10201b}}*,*:before,*:after{box-sizing:border-box}html{background:var(--paper);-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.72;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-soft);color:var(--ink)}img{max-width:100%;height:auto;display:block}a{color:var(--accent-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--accent) 42%,transparent);transition:color .18s ease,text-decoration-color .18s ease}a:hover{color:var(--accent);text-decoration-color:currentColor}h1,h2,h3{text-wrap:balance}.wrap{width:min(var(--max),100% - 48px);margin-inline:auto}.skip-link{position:absolute;left:16px;top:-60px;padding:10px 14px;background:var(--ink);color:var(--paper);border-radius:8px;z-index:10;transition:top .15s ease}.skip-link:focus{top:16px;color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.site-header{border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-block:22px}.brand{font-family:var(--font-serif);font-size:1.3rem;font-weight:600;letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap}.brand:hover{color:var(--accent)}.brand span{font-family:var(--font-sans);font-size:.72rem;font-weight:400;letter-spacing:.02em;color:var(--muted)}.site-nav{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 22px;font-size:.86rem}.site-nav a{color:var(--ink-soft);text-decoration:none}.site-nav a:hover{color:var(--accent)}.site-nav a[aria-current=page]{color:var(--ink)}.hero{padding:clamp(64px,10vw,112px) 0 clamp(56px,8vw,88px);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px}.hero-copy{max-width:760px}.hero h1{margin:0;font-family:var(--font-serif);font-weight:600;font-size:clamp(2.05rem,5vw,3.9rem);line-height:1.22;letter-spacing:-.02em;max-width:none;text-wrap:initial}.hero .lede{margin:26px 0 0;max-width:58ch;color:var(--ink-soft);font-size:1.08rem}.hero-links{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:30px;font-size:.95rem}.hero-links a{text-decoration:none}.hero-links a:after{content:" →";color:var(--muted)}.hero-note{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);white-space:nowrap;padding-bottom:8px}.section{padding:clamp(52px,7vw,76px) 0;border-top:1px solid var(--line)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:34px}.section-head h2{margin:0;font-family:var(--font-serif);font-weight:600;font-size:clamp(1.55rem,3vw,2rem);letter-spacing:-.015em}.section-head a{font-size:.88rem;text-decoration:none}.project{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:clamp(28px,5vw,60px);align-items:center}.project .meta{margin:0 0 14px;font-size:.76rem;color:var(--muted);letter-spacing:.015em}.project h3{margin:0;font-family:var(--font-serif);font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:600;letter-spacing:-.015em}.project p{margin:16px 0 22px;max-width:46ch;color:var(--ink-soft);font-size:.98rem}.project .more{font-size:.92rem;text-decoration:none}.project .more:after{content:" →";color:var(--muted)}.project-shot{display:block;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--paper-soft);transition:transform .25s ease,border-color .25s ease}.project-shot:hover{transform:translateY(-2px);border-color:var(--line-strong)}.project-shot img{width:100%}.post-list{border-top:1px solid var(--line)}.post-item{display:grid;grid-template-columns:128px minmax(0,1fr);gap:28px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}.post-item time{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);letter-spacing:.01em}.post-item h3{margin:0 0 6px;font-size:1.05rem;font-weight:600}.post-item h3 a{color:var(--ink);text-decoration:none}.post-item h3 a:hover{color:var(--accent)}.post-item p{margin:0;color:var(--muted);font-size:.92rem;max-width:68ch}.project-page{padding:clamp(48px,7vw,84px) 0 0}.project-page .meta{margin:0 0 16px;font-size:.78rem;color:var(--muted)}.project-page h1{margin:0;font-family:var(--font-serif);font-size:clamp(2.5rem,5.6vw,4.2rem);font-weight:600;line-height:1.16;letter-spacing:-.025em}.project-page .tagline{margin:18px 0 0;max-width:34ch;font-size:clamp(1.1rem,2vw,1.3rem);color:var(--ink-soft)}.project-page .intro{margin:18px 0 0;max-width:62ch;color:var(--muted);font-size:.98rem}.actions{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:8px;border:1px solid transparent;font-size:.9rem;font-weight:550;text-decoration:none;transition:background .18s ease,border-color .18s ease,color .18s ease}.button.primary{background:var(--accent);color:var(--on-accent)}.button.primary:hover{background:var(--accent-ink);color:var(--on-accent)}.button.secondary{border-color:var(--line-strong);color:var(--ink);background:transparent}.button.secondary:hover{border-color:var(--accent);color:var(--accent)}.button .small{font-weight:400;opacity:.72;font-size:.8rem}.lang-link{font-size:.86rem;text-decoration:none;align-self:center;margin-left:4px}.hero-figure{margin:clamp(40px,6vw,64px) 0 0}.hero-shot{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--paper-soft)}.hero-shot img{width:100%}figcaption{margin-top:10px;font-size:.78rem;color:var(--muted);letter-spacing:.01em}figure{margin:0}.story{max-width:68ch}.story p{margin:0 0 18px;color:var(--ink-soft)}.story p:last-child{margin-bottom:0}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 56px}.feature{border-top:1px solid var(--line);padding-top:16px}.feature h3{margin:0 0 6px;font-size:1rem;font-weight:600}.feature p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.65}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.gallery figure:first-child{grid-column:1 / -1}.gallery figure{min-width:0}.gallery .shot{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--paper-soft)}.gallery .shot img{width:100%}.gallery figcaption{font-size:.74rem}.specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 32px;margin:0}.specs div{border-top:1px solid var(--line);padding-top:12px}.specs dt{font-size:.76rem;color:var(--muted)}.specs dd{margin:3px 0 0;font-size:.92rem;color:var(--ink-soft)}.download-panel{border:1px solid var(--line-strong);border-radius:var(--radius);padding:clamp(22px,4vw,32px);background:var(--paper-soft)}.download-panel h2{margin:0 0 6px;font-family:var(--font-serif);font-size:1.4rem;font-weight:600}.download-panel .version{margin:0 0 20px;font-size:.86rem;color:var(--muted)}.download-panel .actions{margin-top:0}.install-notes{margin:24px 0 0;padding:0;list-style:none}.install-notes li{border-top:1px solid var(--line);padding:12px 0;font-size:.86rem;color:var(--ink-soft)}.install-notes li:first-child{border-top:0;padding-top:0}code{font-family:var(--font-mono);font-size:.84em;background:color-mix(in srgb,var(--ink) 7%,transparent);padding:.15em .38em;border-radius:5px}pre{overflow-x:auto;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--paper-soft);font-size:.82rem;line-height:1.6}pre code{background:none;padding:0}.prose{max-width:68ch}.prose h2{margin:2.2em 0 .6em;font-family:var(--font-serif);font-size:1.6rem;font-weight:600;letter-spacing:-.01em}.prose h3{margin:1.8em 0 .5em;font-size:1.1rem}.prose p{margin:0 0 1.15em}.prose ul,.prose ol{padding-left:1.35em;margin:0 0 1.15em}.prose li{margin-bottom:.35em}.prose blockquote{margin:1.6em 0;padding:2px 0 2px 18px;border-left:2px solid var(--accent);color:var(--ink-soft)}.prose img{border-radius:var(--radius);border:1px solid var(--line);margin:1.4em 0}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.post-header{padding:clamp(40px,6vw,64px) 0 30px}.post-header .back{font-size:.86rem;text-decoration:none}.post-header h1{margin:18px 0 12px;font-family:var(--font-serif);font-size:clamp(2rem,4.5vw,3rem);line-height:1.25;letter-spacing:-.02em;font-weight:600;max-width:22ch}.post-header .post-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.78rem;color:var(--muted)}.post-body{padding-bottom:60px}.about{padding:clamp(56px,8vw,96px) 0}.about h1{margin:0 0 24px;font-family:var(--font-serif);font-size:clamp(2.2rem,4.5vw,3.2rem);font-weight:600;letter-spacing:-.02em}.about .body{max-width:62ch}.about p{margin:0 0 16px;color:var(--ink-soft)}.about h2{margin:44px 0 14px;font-family:var(--font-serif);font-size:1.3rem;font-weight:600;letter-spacing:-.01em}.about-list{list-style:none;margin:0;padding:0;max-width:68ch}.about-list li{border-top:1px solid var(--line);padding:14px 0;color:var(--ink-soft);font-size:.94rem;line-height:1.7}.about-list strong{color:var(--ink);font-weight:600}.about .links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:28px;font-size:.92rem}.about .links a{text-decoration:none}.site-footer{border-top:1px solid var(--line);margin-top:20px}.site-footer .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;padding-block:28px 36px;font-size:.78rem;color:var(--muted)}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--accent)}.footer-links{display:flex;flex-wrap:wrap;gap:16px}.notfound{padding:clamp(80px,14vw,150px) 0}.notfound h1{margin:0 0 12px;font-family:var(--font-serif);font-size:clamp(2.4rem,6vw,4rem);font-weight:600}.notfound p{color:var(--muted)}@media(max-width:860px){body{font-size:16px}.wrap{width:min(var(--max),100% - 40px)}.hero{grid-template-columns:1fr;align-items:start}.hero-note{display:none}.project{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr;gap:22px}.gallery{grid-template-columns:1fr}.specs{grid-template-columns:repeat(2,minmax(0,1fr))}.post-item{grid-template-columns:1fr;gap:6px}.site-header .wrap{align-items:flex-start;flex-direction:column;gap:14px}.site-nav{gap:8px 18px}}@media(max-width:520px){.wrap{width:min(var(--max),100% - 32px)}.actions{align-items:stretch}.button{width:100%}.lang-link{margin-left:0}.specs{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
