/* Original Tongzhou download-site artwork and layout. No remote assets. */
:root{color-scheme:light;--paper:#f7f5ee;--white:#fffefa;--ink:#233a32;--green:#254d42;--deep:#1c3c33;--muted:#66716a;--line:#d9ded3;--soft:#eaf0e7;--sand:#e7dfc8;--accent:#98784a;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img,svg{display:block}button,input,a,summary{outline-offset:5px}:focus-visible{outline:3px solid #9a6434}button:disabled{cursor:wait}p,h1,h2,h3{margin:0}a,button{touch-action:manipulation}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:18px;top:-80px;padding:12px 20px;background:var(--ink);color:white;z-index:10;border-radius:8px}.skip-link:focus{top:14px}.site-header,.site-footer,.page-main,.gate-main{width:min(1200px,calc(100% - 96px));margin-inline:auto}.site-header{min-height:102px;display:flex;justify-content:space-between;align-items:center;gap:28px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:11px;font-size:25px;line-height:1.1;font-weight:680;letter-spacing:.04em;flex-shrink:0}.brand-caption{display:block;font-size:9px;letter-spacing:.16em;margin-top:7px;font-weight:600;color:var(--muted)}.header-nav{display:flex;align-items:center;gap:30px;font-size:14px}.header-nav form{margin:0}.header-nav>a,.quiet-link,.text-link,.repository-secondary{transition:color .18s}.header-nav>a:hover,.quiet-link:hover,.text-link:hover{color:#947039}.quiet-button{background:transparent;border:1px solid var(--line);border-radius:7px;padding:8px 15px;min-height:42px;color:var(--muted);transition:background .18s}.quiet-button:hover{background:var(--soft);color:var(--ink)}.quiet-link{font-size:14px}.quiet-link span{margin-left:8px}.eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:11px;line-height:1.6;font-weight:650;letter-spacing:.12em;color:var(--muted)}.eyebrow-line{width:23px;height:1px;background:var(--green)}.edition{padding:3px 8px;border:1px solid #cbd9ca;border-radius:4px;font-size:10px;letter-spacing:.06em;color:var(--green);background:#eef2e8}.hero{display:grid;grid-template-columns:1.27fr 1fr;align-items:center;gap:56px;padding:76px 0 65px}.hero h1{font-size:clamp(32px,4vw,52px);line-height:1.43;letter-spacing:-.035em;font-weight:650;margin-top:22px}.serif-accent{font-family:"Songti SC","STSong","SimSun",serif;font-weight:500;color:var(--green)}.hero-description{font-size:16px;line-height:1.9;color:var(--muted);margin-top:23px}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:12px 22px;font-weight:600;font-size:14px;border:1px solid transparent;border-radius:7px;transition:background .18s,border-color .18s,transform .18s}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)}.button.primary{background:var(--green);color:var(--white)}.button.primary:hover{background:#173c30}.button.secondary{background:var(--white);border-color:#bccbbd;color:var(--green)}.button.secondary:hover{background:var(--soft);border-color:var(--green)}.button.light{background:var(--white);color:var(--green)}.button.light:hover{background:#e7eedf}.hero-button{margin-top:31px}.hero-note{color:var(--muted);font-size:11px;letter-spacing:.06em;margin-top:14px}.icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.hero-art{background:#e9ecdf;border:1px solid #d7ddce;border-radius:110px 110px 12px 12px;min-height:390px;padding:32px 29px 22px;position:relative;overflow:hidden}.hero-art::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#53735d09 1px,transparent 1px),linear-gradient(90deg,#53735d09 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.art-topline,.art-bottomline{display:flex;justify-content:space-between;gap:12px;position:relative;color:#61725f;font-size:9px;letter-spacing:.1em}.art-topline{padding:9px 18px 0;font-size:8px}.art-bottomline{padding-top:5px;border-top:1px solid #bdc9b2}.art-bottomline span:first-child{font-size:11px;letter-spacing:.08em}.ship-drawing{width:100%;height:auto;position:relative;margin:9px 0 3px}.drawing-guide{stroke:#9bab8d;stroke-width:.7;stroke-dasharray:3 5;opacity:.65}.drawing-sail{fill:#f7f4e5;stroke:#536d51;stroke-width:1.1}.drawing-secondary{fill:#b3c2a8;stroke:#536d51;stroke-width:1.1}.drawing-hull{fill:var(--green)}.drawing-detail{stroke:#8ba288;stroke-width:1}.drawing-water{stroke:#859b7d;stroke-width:1}.drawing-sun{fill:#cfb57c}.scope-note{border-block:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:18px 0;color:var(--muted);font-size:13px;line-height:1.8}.scope-note strong{color:var(--ink);font-weight:600}.scope-mark{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex-shrink:0;color:var(--green)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px}.section-heading h2{font-size:28px;line-height:1.5;letter-spacing:-.025em;font-weight:620;margin-top:9px}.section-caption{font-size:11px;text-align:right;color:var(--muted);line-height:1.9}.section-caption strong{font-weight:550;color:var(--ink)}.download-section{padding-top:65px}.download-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.download-card{background:var(--white);border:1px solid var(--line);border-radius:11px;padding:27px 25px 19px;display:flex;flex-direction:column;position:relative}.download-card.featured{border-color:#8baf91;background:#f1f5eb}.platform-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.platform-icon{width:43px;height:43px;color:var(--green);display:grid;place-items:center}.platform-icon svg{width:32px;height:32px;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.platform-tag{font-size:10px;color:#3c6348;letter-spacing:.025em;background:#e0ead9;border:1px solid #cbdcc2;border-radius:4px;padding:3px 7px}.platform-tag.neutral{color:var(--muted);background:#f3f3ec;border-color:#e1e4db}.download-card h3{font-size:23px;line-height:1.4;letter-spacing:-.02em;margin:22px 0 12px;font-weight:620}.download-card h3 span{font-size:15px;font-weight:450;color:var(--muted);margin-left:4px}.platform-description{font-size:12px;line-height:1.95;color:var(--muted);min-height:47px}.package-meta{display:flex;gap:26px;margin:28px 0 24px}.package-meta div{display:flex;flex-direction:column}.package-meta dt{font-size:10px;color:var(--muted);margin-bottom:3px}.package-meta dd{margin:0;font-size:12px;font-weight:550;color:var(--ink)}.download-button{margin-top:auto;justify-content:space-between;gap:8px;width:100%;padding-inline:15px;font-size:13px}.package-status{font-size:10px;color:#4c6b4c;margin-top:13px;display:flex;align-items:center;gap:7px;min-height:20px}.status-dot{width:5px;height:5px;border-radius:50%;background:#719467;flex-shrink:0}.package-status.pending{color:#856332}.download-footnote{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;margin-top:19px;font-size:11px;color:var(--muted);line-height:1.9}.text-link{font-weight:600;white-space:nowrap;color:var(--green);padding-top:2px}.text-link span{margin-left:5px}.getting-started{padding-top:72px}.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.steps li{display:flex;gap:14px;border-top:1px solid var(--line);padding-top:24px}.step-number{font-family:Georgia,serif;font-size:21px;color:#a5ae9a;line-height:1.5}.steps h3{font-size:15px;font-weight:600;margin-bottom:10px}.steps p{font-size:12px;line-height:1.95;color:var(--muted)}code{font-family:var(--font);color:var(--ink);font-size:.96em;overflow-wrap:anywhere}.usage-details{margin-top:32px;border-block:1px solid var(--line);font-size:12px}.usage-details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 0;font-weight:550}.usage-details summary::-webkit-details-marker{display:none}.details-symbol{font-size:21px;font-weight:300;line-height:1;color:var(--muted);transition:transform .18s}.usage-details[open] .details-symbol{transform:rotate(45deg)}.details-content{display:grid;gap:12px;padding:0 28px 22px 0;color:var(--muted);max-width:950px;line-height:1.9}.details-content strong{color:var(--ink);font-weight:550}.repository-section{margin:68px 0 72px;display:flex;justify-content:space-between;align-items:center;gap:40px;padding:44px 48px;background:var(--green);color:var(--white);border-radius:12px;position:relative;overflow:hidden}.repository-section .eyebrow{color:#b9cbb6}.repository-section h2{font-size:29px;font-weight:550;line-height:1.5;margin-top:12px;letter-spacing:-.02em}.repository-section>div>p:last-child{font-size:12px;line-height:1.9;color:#d4dfcd;margin-top:14px}.repository-actions{display:flex;flex-direction:column;align-items:flex-start;gap:15px;flex-shrink:0}.repository-secondary{font-size:12px;color:#d7e2cf}.repository-secondary:hover{color:#fff}.repository-secondary span{padding-left:14px}.repository-section .repository-actions p:last-child{font-size:10px;margin-top:2px;color:#b9cbb6}.site-footer{padding:26px 0 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px;color:var(--muted)}.site-footer>div{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.gate-page{min-height:100svh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 15% 65%,#e6eadb 0,transparent 48%),var(--paper)}.gate-main{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,0.8fr);gap:85px;align-items:center;padding:70px 0 62px;flex:1}.gate-story h1{font-size:clamp(48px,5.5vw,76px);line-height:1.3;letter-spacing:-.04em;font-weight:550;margin-top:22px}.gate-intro{font-size:15px;color:var(--muted);line-height:2;margin-top:27px}.gate-art{width:100%;max-width:565px;margin:17px 0 0}.gate-art svg{width:100%;height:auto}.art-line{stroke:#83947b;stroke-width:1.3}.art-line.faint{stroke:#acb9a2;stroke-width:.9}.art-sail{fill:#e8e6cd;stroke:#8c9b7b;stroke-width:1}.gate-art>span{display:block;font-size:10px;color:#75806e;letter-spacing:.12em;margin-top:5px}.access-card{background:var(--white);border:1px solid #dbe0d2;border-radius:16px;padding:37px 34px 29px;box-shadow:0 16px 50px #263e2d05}.lock-mark{height:44px;width:44px;background:#edf1e6;border:1px solid #dce5d3;border-radius:12px;display:grid;place-items:center;color:var(--green);margin-bottom:28px}.lock-mark svg{height:24px;width:24px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.access-card h2{font-size:25px;font-weight:600;letter-spacing:-.02em;margin-top:8px}.form-intro{font-size:13px;line-height:1.9;color:var(--muted);margin-top:13px}.access-form{margin-top:29px}.access-form label{display:block;font-size:12px;font-weight:550;margin-bottom:8px}.access-form input[type=password]{width:100%;height:52px;border:1px solid #bbc8b9;background:#fdfdf8;border-radius:7px;padding:12px 14px;font-size:15px;letter-spacing:.025em;color:var(--ink)}.access-form input[type=password]::placeholder{color:#7b847b;font-size:13px;letter-spacing:0}.access-form input[type=password]:focus{border-color:var(--green)}.form-error{color:#9c3829;background:#fff2ed;border-radius:5px;font-size:12px;line-height:1.8;padding:9px 11px;margin-top:12px;overflow-wrap:anywhere}.form-error:empty{display:none}.full-width{width:100%;justify-content:space-between;margin-top:19px}.access-help{font-size:11px;line-height:1.8;color:var(--muted);text-align:center;margin-top:22px}.gate-footer{font-size:10px}
@media(min-width:1450px){.site-header,.site-footer,.page-main,.gate-main{width:min(1260px,calc(100% - 128px))}.hero{gap:80px}.hero h1{font-size:56px}.hero-art{padding-inline:36px}.gate-main{gap:130px}.access-card{max-width:440px}.hero-description{font-size:17px}.download-card{padding:30px 30px 22px}}
@media(max-width:1050px){.site-header,.site-footer,.page-main,.gate-main{width:calc(100% - 56px)}.hero{gap:30px;padding-top:57px}.hero h1{font-size:38px}.hero-art{min-height:0;padding:27px 18px 20px;border-top-left-radius:85px;border-top-right-radius:85px}.art-topline{font-size:7px;padding-inline:8px}.art-bottomline{font-size:7px}.art-bottomline span:first-child{font-size:10px}.download-grid{gap:12px}.download-card{padding:22px 18px 16px}.download-card h3{font-size:21px}.download-card h3 span{display:block;margin:2px 0 0;font-size:13px}.platform-tag{font-size:9px}.download-button{font-size:12px;padding-inline:12px}.section-heading h2{font-size:25px}.steps{gap:20px}.steps li{gap:9px}.repository-section{padding:36px 30px}.gate-main{gap:38px;grid-template-columns:1fr 360px}.gate-story h1{font-size:61px}.access-card{padding:30px 25px 25px}}
@media(max-width:760px){.site-header,.site-footer,.page-main,.gate-main{width:calc(100% - 40px)}.site-header{min-height:84px;gap:16px}.brand{font-size:23px;gap:9px}.brand img{width:34px;height:34px}.brand-caption{font-size:8px;letter-spacing:.13em}.header-nav{gap:16px;font-size:12px}.header-nav>a:first-child{display:none}.quiet-button{padding:7px 11px;font-size:11px;min-height:38px}.hero{grid-template-columns:1fr;padding:43px 0 35px;gap:29px}.hero h1{font-size:clamp(34px,6.5vw,47px);line-height:1.4}.hero-description{font-size:14px;margin-top:19px}.hero-button{margin-top:24px}.hero-art{width:100%;min-height:0;border-radius:12px;padding:17px 23px;max-height:245px;display:grid;grid-template-columns:1fr 1.6fr;align-items:center}.art-topline{display:flex;flex-direction:column;gap:8px;font-size:9px;padding:0;max-width:130px;line-height:1.8}.ship-drawing{width:100%;max-height:190px;margin:0}.art-bottomline{grid-column:1/-1;font-size:8px;margin-top:10px;padding-top:10px}.scope-note{font-size:12px;gap:12px;padding:17px 0;align-items:flex-start}.scope-mark{margin-top:3px;width:32px;height:32px}.scope-mark svg{width:17px;height:17px}.download-section{padding-top:42px}.section-heading{display:block;margin-bottom:22px}.section-heading h2{font-size:24px}.section-caption{text-align:left;font-size:10px;margin-top:12px}.section-caption br{display:none}.section-caption strong{margin-right:10px}.download-grid{grid-template-columns:1fr;gap:14px}.download-card{padding:24px}.download-card h3{font-size:24px;margin-top:16px}.download-card h3 span{display:inline;font-size:15px;margin-left:6px}.platform-description{font-size:13px;min-height:0}.package-meta{gap:38px;margin-block:22px}.package-meta dt{font-size:11px}.package-meta dd{font-size:13px}.download-button{font-size:14px;padding-inline:18px}.platform-tag{font-size:10px}.package-status{font-size:11px}.download-footnote{flex-direction:column;gap:10px;font-size:11px}.download-footnote br{display:none}.getting-started{padding-top:48px}.steps{grid-template-columns:1fr;gap:23px}.steps li{padding-top:20px;gap:17px}.steps h3{font-size:16px;margin-bottom:7px}.steps p{font-size:13px}.steps .step-number{font-size:23px}.usage-details{margin-top:26px}.usage-details summary{font-size:13px}.details-content{font-size:12px;padding-right:0}.repository-section{margin-block:44px;flex-direction:column;align-items:stretch;padding:29px 26px;gap:24px}.repository-section h2{font-size:28px}.repository-section>div>p:last-child{font-size:12px}.repository-actions{gap:15px;align-items:stretch}.repository-actions .button{font-size:13px;justify-content:space-between;padding-inline:17px}.repository-secondary{align-self:flex-start}.site-footer{font-size:10px;align-items:flex-start;gap:12px;padding:23px 0}.site-footer>div{flex-direction:column;gap:5px;align-items:flex-end}.gate-main{grid-template-columns:1fr;gap:30px;padding:40px 0 38px}.gate-story h1{font-size:45px;line-height:1.25;margin-top:14px}.gate-story h1 br{display:none}.gate-intro{font-size:13px;margin-top:18px}.gate-intro br{display:none}.gate-art{display:none}.access-card{max-width:480px;width:100%;justify-self:center;padding:29px 25px 25px}.lock-mark{margin-bottom:22px}.access-card h2{font-size:24px}.gate-story .eyebrow{font-size:10px}.gate-footer{align-items:center}.gate-header .quiet-link{font-size:12px}}
@media(max-width:390px){.site-header,.site-footer,.page-main,.gate-main{width:calc(100% - 32px)}.header-nav{gap:10px}.brand-caption{font-size:7px}.brand{font-size:21px}.hero h1{font-size:33px}.hero .eyebrow{font-size:10px;gap:7px}.hero-description{font-size:13px}.hero-art{padding-inline:18px}.section-heading h2{font-size:22px}.download-card{padding:22px}.repository-section{padding:26px 21px}.gate-story h1{font-size:39px}.gate-story .eyebrow-line{width:16px}.gate-footer{align-items:flex-start;flex-direction:column;gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.button:hover{transform:none}}
