:root{color-scheme:light;--paper:#f7f5f2;--ink:#101018;--muted:#686b7c;--purple:#5c48ed;--purple-ink:#5946df;--soft:#ece8ff;--line:#dcdbe4;--glass:rgba(255,255,255,.76);--panel:#fff;--red:#ff564f;--shadow:0 9px 40px rgba(47,37,78,.07)}
.theme-dark{color-scheme:dark;--paper:#14131b;--ink:#f6f3fc;--muted:#b7b3c8;--purple:#8e7bff;--purple-ink:#b0a3ff;--soft:#30283e;--line:#3c374a;--glass:rgba(36,31,46,.88);--panel:#211d2b;--red:#ff786f;--shadow:0 9px 40px rgba(0,0,0,.16)}
*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--purple-ink);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}button{border:0;background:none}button:disabled{cursor:wait;opacity:.65}h1,h2,h3,p,figure{margin:0}h2,h3{line-height:1.3}img{display:block;max-width:100%;height:auto}svg.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon.small{width:18px;height:18px}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--purple);outline-offset:4px;border-radius:8px}::selection{background:var(--soft)}.muted{color:var(--muted)}
.site-header{position:sticky;top:16px;z-index:20;display:flex;align-items:center;gap:24px;min-height:70px;margin:16px 32px 0;padding:10px 18px 10px 26px;background:var(--glass);border:1px solid rgba(255,255,255,.28);border-radius:100px;backdrop-filter:blur(22px);box-shadow:var(--shadow)}.brand{display:inline-flex;align-items:center;gap:9px;flex:none;color:var(--ink);font-size:20px;font-weight:750}.brand:hover{text-decoration:none}.brand .bird{width:33px;height:33px}.site-nav{display:flex;gap:8px;border-left:1px solid var(--line);padding-left:16px}.site-nav a{padding:8px 16px;color:var(--muted);min-height:44px}.site-nav a:first-child{background:var(--soft);color:var(--purple-ink);border-radius:50px}.header-actions{display:flex;align-items:center;gap:16px;margin-left:auto}.recommend{display:flex;gap:8px;align-items:center;min-height:44px;font-weight:600;color:var(--muted)}.theme-button{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:11px 24px;border:1px solid transparent;border-radius:50px;font-weight:650;line-height:1.4;text-align:center;transition:background .2s,transform .2s}.button:hover{text-decoration:none;transform:translateY(-1px)}.primary{background:var(--purple);color:#fff}.theme-dark .primary{color:#15101f}.outline{border-color:var(--purple);color:var(--purple-ink);background:transparent}.soft{background:var(--soft);color:var(--purple-ink)}.account{min-width:90px;padding:10px 24px;font-size:15px}.text-button{color:var(--purple-ink);min-height:44px;padding:8px 0;font-weight:600}.close-button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;font-size:30px;line-height:1;flex:none}.close-button:hover{background:var(--soft)}
.project-directory{position:fixed;left:0;top:108px;bottom:0;width:240px;overflow:auto;overscroll-behavior:contain;border-right:1px solid var(--line);padding:30px 18px 32px}.project-directory h2{padding:7px 19px 22px;font-size:15px;font-weight:600;color:var(--muted)}.project-directory nav,.directory-dialog nav{display:flex;flex-direction:column;gap:7px}.project-item{width:100%;text-align:left;padding:17px 20px;border-radius:13px;color:var(--ink);min-height:82px}.project-item:hover{background:var(--glass)}.project-item[aria-current="true"]{background:var(--soft)}.project-item strong{display:flex;align-items:center;gap:13px;font-size:18px;line-height:1.45}.project-item .tagline{display:block;margin-top:3px;font-size:14px;color:var(--muted)}.active-dot{display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 8px rgba(255,86,79,.25)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
main{margin-left:240px;padding:47px 40px 24px;min-height:calc(100vh - 86px);max-width:1650px}.page-heading h1{font-size:clamp(38px,4.6vw,66px);font-weight:800;letter-spacing:-2px;line-height:1.15}.page-heading h1 span{color:var(--purple)}.page-heading p{margin-top:11px;font-size:22px;font-weight:580;color:var(--muted)}.mobile-actions{display:none}.catalog-message{margin-top:22px;padding:13px 16px;border:1px solid var(--line);border-radius:14px;color:var(--muted);font-size:14px}.welcome{display:flex;flex-direction:column;align-items:center;text-align:center;padding:58px 0 65px}.welcome img{width:260px;height:260px;object-fit:contain}.welcome h2{margin:16px 0 34px;font-size:clamp(26px,3vw,39px);line-height:1.5;letter-spacing:.1px}.welcome .button{min-width:255px;font-size:19px}.page-footer{display:flex;gap:24px;align-items:center;border-top:1px solid var(--line);padding-top:18px;margin-top:52px;font-size:13px;color:var(--muted)}.page-footer>a{color:var(--muted)}
.overview{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1.85fr);column-gap:34px;margin-top:32px;align-items:start}.overview-title{grid-column:2;grid-row:1;margin-top:22px}.phase{color:var(--purple-ink);font-weight:650;font-size:16px}.overview-title h2{font-size:clamp(25px,2.5vw,36px);font-weight:780;letter-spacing:-.65px;margin-top:19px;overflow-wrap:anywhere}.cover{grid-column:1;grid-row:1/3;margin:0;min-width:0}.cover-button{padding:0;width:100%;display:block;cursor:zoom-in;border-radius:20px;overflow:hidden;background:var(--soft)}.cover-button img{width:100%;height:auto;max-height:620px;object-fit:contain;aspect-ratio:1.35}.cover figcaption{color:var(--muted);font-size:13px;margin-top:6px;padding-left:4px}.text-cover{aspect-ratio:1.35;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:35px;border-radius:20px;background:var(--soft);color:var(--purple-ink)}.text-cover strong{font-size:clamp(32px,4vw,60px);line-height:1.2;overflow-wrap:anywhere}.text-cover span{margin-top:17px;font-size:18px}.overview-summary{grid-column:2;grid-row:2;margin-top:22px;min-width:0}.overview-summary>.intro{font-size:18px;color:var(--muted);line-height:1.85;white-space:pre-wrap}.summary-block{margin-top:33px}.summary-block h3{font-size:17px;margin-bottom:10px}.summary-block p{font-size:15px;color:var(--muted);white-space:pre-wrap}.overview-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:31px;align-items:center}.overview-actions .primary{font-size:17px;padding:14px 29px}.project-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:20px}.project-links a{display:inline-flex;align-items:center;gap:5px;min-height:44px;font-weight:620;font-size:15px}.project-note{border-top:1px solid var(--line);margin-top:42px;padding-top:22px;color:var(--muted);font-size:13px}
.detail{max-width:860px;margin:28px auto 0}.detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:29px}.detail-toolbar .text-button{display:inline-flex;align-items:center;gap:8px}.detail-section{margin-top:42px}.detail-section h2,.downloads-section h2{font-size:27px;letter-spacing:-.4px;margin-bottom:17px}.detail-project-title{font-size:34px;margin-bottom:18px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.95}.detail .muted{line-height:1.9}.downloads-grid{display:grid;gap:12px}.download-row{padding:20px 22px;background:var(--glass);border:1px solid var(--line);border-radius:17px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.download-row h3{font-size:17px;margin-bottom:7px}.download-row p{font-size:14px;color:var(--muted);line-height:1.7}.download-meta{margin-top:7px}.download-status{margin-top:5px}.download-row .button{padding:10px 18px;font-size:14px}.download-unavailable{color:var(--muted);font-size:13px;border:1px solid var(--line);padding:8px 13px;border-radius:12px;max-width:105px;text-align:center}.download-footnote{margin-top:16px;font-size:13px;color:var(--muted)}.progress-block{margin-top:22px;padding:18px 20px;border-left:3px solid var(--purple);background:var(--soft);border-radius:0 13px 13px 0}.progress-block strong{font-size:24px}.progress-block p{font-size:14px;margin-top:4px;color:var(--muted)}.timeline{display:flex;gap:16px;padding:15px 2px 20px;overflow-x:auto;scroll-snap-type:x proximity}.timeline-node{position:relative;flex:0 0 210px;scroll-snap-align:start;text-align:left;padding:21px 18px;min-height:168px;border:1px solid var(--line);border-radius:16px;background:var(--glass)}.timeline-node:hover{border-color:var(--purple)}.timeline-node .time{color:var(--purple-ink);font-size:13px;font-weight:600}.timeline-node h3{font-size:17px;margin-top:7px}.timeline-node p{margin-top:10px;font-size:13px;color:var(--muted)}.timeline-node .node-cta{display:block;margin-top:14px;color:var(--purple-ink);font-size:13px}.story-body{white-space:pre-wrap;line-height:1.95;overflow-wrap:anywhere}.story-section .text-button{display:inline-flex;gap:8px;align-items:center;margin-top:13px}.participation{padding:24px;border-radius:18px;background:var(--soft)}.participation .actions{margin-top:12px}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.next-step{margin-top:17px}.node-images{display:grid;gap:18px;margin-top:23px}.node-images figure{min-width:0}.node-images button{display:block;width:100%;padding:0;cursor:zoom-in}.node-images img{max-height:500px;object-fit:contain;margin:auto;border-radius:12px}.node-images figcaption{font-size:13px;color:var(--muted);margin-top:6px}
dialog{border:1px solid var(--line);border-radius:25px;background:var(--panel);color:var(--ink);box-shadow:0 24px 80px rgba(15,9,38,.2);width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:25px;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:rgba(16,12,28,.38);backdrop-filter:blur(6px)}dialog[open]{animation:dialog-in .2s ease-out}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:13px}.dialog-heading h2{font-size:23px}.recommend-dialog>p{font-size:14px;margin-bottom:17px}form label{display:block;font-size:14px;font-weight:600;margin-top:17px}input,textarea,select{width:100%;display:block;min-height:46px;margin-top:6px;padding:11px 13px;background:var(--paper);border:1px solid var(--line);border-radius:10px;font-size:15px;line-height:1.5}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--purple)}.form-note{font-size:12px;color:var(--muted);margin-top:13px}.form-status{font-size:14px;white-space:pre-wrap;margin:14px 0;color:var(--purple-ink)}.form-status.error{color:var(--red)}#leadForm>.primary{width:100%;margin-top:10px}.login-prompt{padding:21px 0}.login-prompt .actions{margin-top:19px}.login-prompt p{color:var(--muted)}.node-dialog{width:min(820px,calc(100% - 32px))}.image-dialog{width:min(1200px,calc(100% - 24px));padding:18px;background:var(--panel)}.image-dialog>.close-button{position:sticky;top:0;margin-left:auto;background:var(--panel);z-index:1}.image-dialog img{max-height:calc(100dvh - 130px);object-fit:contain;margin:0 auto}.directory-dialog{display:none}.toast{position:fixed;z-index:80;bottom:28px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 36px);background:var(--ink);color:var(--paper);padding:12px 22px;border-radius:50px;box-shadow:var(--shadow);font-size:14px}.skip-link{position:fixed;left:20px;top:-100px;z-index:100;padding:11px 18px;background:var(--panel);border:1px solid var(--purple);border-radius:12px}.skip-link:focus{top:20px}.noscript{padding:40px 20px;margin-left:240px}
.admin-dialog{width:min(880px,calc(100% - 32px))}.admin-tabs{display:flex;gap:10px;margin-top:20px}.admin-select{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;margin:16px 0}.admin-select label{margin:0}.admin-select button{margin-bottom:1px}.admin-section{border:1px solid var(--line);border-radius:13px;padding:0 17px;margin:14px 0}.admin-section summary{min-height:50px;cursor:pointer;padding:13px 0;font-weight:600;font-size:15px}.admin-section>.fields{padding-bottom:17px}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 17px}.fields-grid .wide{grid-column:1/-1}.check-label{display:flex;gap:10px;align-items:center}.check-label input{width:20px;min-height:20px;margin:0}.editor-node,.editor-download{padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-bottom:14px}.editor-node .node-row-heading{display:flex;gap:12px;align-items:center;justify-content:space-between}.editor-node h3,.editor-download h3{font-size:15px}.admin-save{display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;bottom:-25px;background:var(--panel);padding:17px 0;border-top:1px solid var(--line)}.admin-save .check-label{margin:0}.lead-card{padding:18px;border:1px solid var(--line);border-radius:15px;margin-top:15px;overflow-wrap:anywhere}.lead-card h3{font-size:18px}.lead-card>.muted{font-size:12px;margin-top:5px}.lead-card .prose{font-size:14px;margin-top:12px}.lead-card .lead-contact{margin-top:12px;font-size:14px}.lead-card .actions{justify-content:flex-end;margin-top:14px}
.account{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.story-section{scroll-margin-top:110px}.detail-section>.prose,.story-body{max-width:720px}
@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1700px){main{margin-right:auto}.overview{column-gap:46px}}
@media(max-width:1100px) and (min-width:761px){.project-directory{width:205px;padding-left:10px;padding-right:10px}main{margin-left:205px;padding:42px 25px}.site-header{margin-inline:20px;gap:14px}.overview{column-gap:24px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.overview-title{margin-top:8px}.overview-title h2{font-size:27px}.overview-summary>.intro{font-size:16px}.overview-actions .primary{padding:12px 22px}.overview-summary{margin-top:18px}.summary-block{margin-top:24px}}
@media(max-width:760px){html{scrollbar-gutter:auto}.site-header{top:10px;margin:10px 12px 0;padding:10px 12px 10px 18px;min-height:64px;gap:12px}.brand{font-size:20px;gap:7px}.brand .bird{width:31px;height:31px}.site-nav,.desktop-recommend{display:none}.header-actions{gap:10px}.theme-button{width:43px;height:43px}.account{min-width:73px;padding:10px 17px;font-size:15px}.project-directory{display:none}main{margin-left:0;padding:34px 20px 20px;min-height:calc(100vh - 76px)}.page-heading h1{font-size:clamp(34px,8.5vw,60px);letter-spacing:-1.4px}.page-heading p{font-size:18px;margin-top:12px}.mobile-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:24px 0 29px}.mobile-actions .button{padding:12px 18px;font-size:15px;min-height:46px}.mobile-actions .icon{width:21px;height:21px}.mobile-actions .small{width:16px;height:16px}.welcome{padding:16px 0 40px}.welcome img{width:230px;height:230px}.welcome h2{font-size:27px;margin:12px 0 25px}.welcome .button{min-width:230px;font-size:17px}.overview{display:flex;flex-direction:column;margin-top:0;gap:0}.overview-title{margin:0 0 24px}.phase{font-size:15px}.overview-title h2{font-size:clamp(26px,6.8vw,38px);margin-top:18px}.cover{width:100%}.cover-button{border-radius:17px}.cover-button img{max-height:460px;aspect-ratio:1.6}.cover figcaption{font-size:12px;margin-top:7px}.overview-summary{margin-top:26px;width:100%}.overview-summary>.intro{font-size:17px;line-height:1.95}.summary-block{margin-top:25px}.summary-block h3{font-size:18px}.summary-block p{font-size:16px;line-height:1.85}.overview-actions{margin-top:25px;display:block}.overview-actions .primary{width:100%;font-size:19px;min-height:53px}.project-links{gap:8px;margin-top:11px;flex-direction:column}.project-links a{font-size:16px}.project-links .project-external{border:1px solid var(--line);border-radius:50px;width:100%;justify-content:center;min-height:48px;background:var(--soft)}.project-note{margin-top:25px;padding-top:19px}.page-footer{margin-top:35px}.detail{margin-top:0}.detail-toolbar{margin-bottom:24px;gap:12px}.detail-toolbar .text-button{font-size:14px}.detail-section{margin-top:33px}.detail-section h2,.downloads-section h2{font-size:25px}.detail-project-title{font-size:30px}.download-row{grid-template-columns:1fr;padding:18px;gap:13px}.download-row .button{width:100%}.download-unavailable{max-width:none;text-align:left;padding:0;border:0}.timeline{display:flex;flex-direction:column;overflow:visible;padding:0 0 0 16px;gap:15px;border-left:2px solid var(--line);margin:23px 0 12px 9px}.timeline-node{flex:auto;min-height:0;width:100%;padding:18px}.timeline-node:before{content:"";position:absolute;left:-24px;top:25px;width:12px;height:12px;border:3px solid var(--paper);border-radius:50%;background:var(--purple)}.timeline-node p{font-size:14px}.participation{padding:20px}.participation .actions{align-items:stretch;flex-direction:column}.participation .actions>.button{width:100%}.directory-dialog{display:block;position:fixed;inset:0 auto 0 0;margin:0;max-height:100dvh;height:100dvh;width:min(330px,88vw);border-radius:0 24px 24px 0;padding:20px 14px}.directory-dialog:not([open]){display:none}.directory-dialog[open]{animation:drawer-in .2s ease-out}.directory-dialog .dialog-heading{padding:0 8px;margin-bottom:26px}.directory-dialog h2{font-size:19px}dialog{padding:20px;border-radius:21px;max-height:calc(100dvh - 28px)}.dialog-heading h2{font-size:21px}.node-dialog{width:calc(100% - 24px)}.fields-grid{grid-template-columns:1fr}.fields-grid .wide{grid-column:auto}.admin-select{grid-template-columns:1fr}.admin-save{bottom:-20px}.admin-save .button{padding-inline:17px}.noscript{margin:0}.image-dialog{padding:12px}.catalog-message{margin-top:0;margin-bottom:20px}.text-cover{aspect-ratio:1.6}.text-cover strong{font-size:38px}}
@media(max-width:760px){.account{max-width:100px}.story-section{scroll-margin-top:92px}}
@media(max-width:360px){.account{max-width:85px}}
@keyframes drawer-in{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:360px){main{padding-inline:15px}.site-header{margin-inline:8px;padding-left:13px}.brand{font-size:18px}.brand .bird{width:27px}.header-actions{gap:7px}.account{padding-inline:13px;min-width:64px}.theme-button{width:40px;height:40px}.mobile-actions .button{padding:11px 13px;font-size:13px;gap:6px}.mobile-actions .icon{width:19px;height:19px}.mobile-actions .small{width:13px}.page-heading h1{font-size:34px}.page-heading p{font-size:17px}}
.theme-button{width:46px;height:46px;min-width:44px;min-height:44px;flex:none}
@media(max-width:760px){.theme-button{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.event-comments{max-width:1000px;margin:56px auto 24px;padding-top:34px;border-top:1px solid var(--line)}.comments-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.comments-heading .phase{font-size:12px;letter-spacing:.08em}.comments-heading h2{font-size:28px;margin-top:8px}.comments-heading>span{font-size:12px;white-space:nowrap}.comments-login{padding:22px 24px;background:var(--soft);border-radius:18px}.comments-login p{font-size:15px}.comments-login .actions{display:flex;flex-wrap:wrap;gap:20px;margin-top:16px}.comment-form{padding:22px 24px;background:var(--panel);border:1px solid var(--line);border-radius:18px}.comment-identity{font-size:13px;color:var(--muted)}.comment-form label{margin-top:12px}.comment-form textarea{background:var(--paper);min-height:108px}.comment-submit-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px}.comment-submit-row>span{font-size:12px}.comment-reply-target{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--purple-ink)}.comment-action-status{font-size:13px;color:var(--purple-ink);margin:12px 0;min-height:1px}.event-comment{display:flex;gap:14px;padding:24px 0;border-bottom:1px solid var(--line)}.comment-avatar{width:38px;height:38px;border-radius:50%;background:var(--soft);color:var(--purple-ink);display:grid;place-items:center;flex:none;font-size:15px;font-weight:650}.comment-content{flex:1;min-width:0}.comment-content header{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.comment-content header strong{font-size:14px}.comment-content time{font-size:12px;color:var(--muted)}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.85;margin-top:7px}.comment-parent{font-size:12px;color:var(--muted);margin-top:5px}.comment-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;color:var(--muted);font-size:12px}.comment-row-actions .text-button{font-size:12px;font-weight:500}.comment-feed-status{font-size:14px;color:var(--muted);padding:20px 0}.comment-feed-actions{display:flex;gap:20px}.is-pending .comment-avatar{opacity:.65}.is-pending .comment-body{color:var(--muted)}
@media(max-width:760px){.site-nav{display:flex;border:0;padding:0;gap:0}.site-nav a{padding:8px 12px}.site-nav a:not(:first-child){display:none}.brand>span{display:none}.account{min-width:65px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-comments{margin-top:36px;padding-top:26px}.comments-heading h2{font-size:23px}.comments-login,.comment-form{padding:18px}.comment-submit-row{align-items:flex-end}.comment-submit-row .button{padding-inline:18px}.comments-heading{gap:10px}.event-comment{gap:11px}.comment-avatar{width:32px;height:32px}}
