:root{--ink:#202522;--muted:#788078;--line:#e6e9e5;--green:#3b6755;--paper:#fff;--soft:#f5f7f3;--tint:#eaf2e9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);font:15px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--paper)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #81a591;outline-offset:4px}button:disabled{opacity:.45;cursor:default}.skip{position:fixed;left:20px;top:-60px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);background:#f8f9f7;padding:28px 20px;overflow:auto;display:flex;flex-direction:column}.brand{display:grid;grid-template-columns:35px 1fr;gap:0 10px;font-weight:700;font-size:22px;line-height:1.3;align-items:center}.brand small{grid-column:2;color:#949b94;font-size:10px;font-weight:400;letter-spacing:2px;margin-top:5px}.mark{grid-row:1/3;display:flex;gap:4px;width:35px;align-items:flex-end;transform:skew(-12deg)}.mark i{display:block;width:7px;background:#789c8b;height:27px}.mark i:first-child{height:21px;background:#c4ae75}.mark i:last-child{height:33px;background:#385c4d}.back{font-size:13px;color:#687268;margin:34px 0 28px;display:block}.side-label{font-size:11px;letter-spacing:1px;color:#91998f;margin:28px 12px 9px}.side-link{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-radius:8px;font-size:13px;color:#727a70;line-height:1.6}.side-link b{font-size:10px;line-height:21px;font-weight:500;opacity:.6;min-width:18px}.side-link:hover{background:#eef0eb}.side-link.active{background:#e9eee6;color:#294c3c;font-weight:600}.side-bottom{margin-top:auto;padding:32px 12px 0;color:#728172;font-size:11px}.side-bottom small{color:#a0a79d}.online{display:inline-block;width:6px;height:6px;border-radius:50%;background:#719b78;margin-right:8px}.workspace{margin-left:236px}header{height:70px;position:sticky;top:0;z-index:20;background:#ffffffeb;backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:15px;padding:0 42px;font-size:13px;color:#8a9288}header>a{color:#343e35}.head-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.head-actions button,.head-actions a{border:1px solid var(--line);background:white;border-radius:8px;padding:7px 14px;color:#586553;font-size:12px}.head-actions a{background:#2f4538;color:white;border-color:#2f4538}main{max-width:1216px;margin:auto;padding:40px 48px 90px}.breadcrumb{color:#8a9589;font-size:12px;display:flex;gap:10px;align-items:center}.pill{display:inline-flex;border:1px solid #dfe7db;border-radius:30px;padding:3px 11px;color:#6b8064;font-size:11px;background:#f8faf5}.pill.draft{background:#f8f5ec;border-color:#e9e0c8;color:#907443}.hero{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;margin:25px 0 32px}.hero h1{font-size:clamp(30px,3.2vw,44px);letter-spacing:-1.3px;line-height:1.4;margin:13px 0 17px;font-weight:650}.hero p{font-size:15px;line-height:1.95;color:#687467;margin:0 0 21px}.hero-meta{display:flex;gap:16px;color:#8b9588;font-size:11px;flex-wrap:wrap}.hero-art{height:200px;background:#f7f9f4;border:1px solid #edf1e9;border-radius:20px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.hero-art img{max-width:88%;max-height:85%;object-fit:contain;mix-blend-mode:multiply}.hero-art svg{width:130px;height:130px}.hero-art .caption{position:absolute;bottom:8px;right:14px;font-size:10px;color:#96a28e}.section-nav{display:flex;gap:6px;flex-wrap:wrap;border-block:1px solid var(--line);padding:12px 0;margin:25px 0 40px}.section-nav a{font-size:12px;padding:5px 13px;color:#74816e;border-radius:5px}.section-nav a:hover{background:var(--soft);color:var(--green)}section{margin:0 0 50px;scroll-margin-top:90px}h2{font-size:20px;letter-spacing:-.3px;font-weight:600;margin:0 0 19px;display:flex;gap:12px;align-items:center}h2 .n{font:11px ui-monospace,SFMono-Regular,monospace;color:#9ea998;font-weight:400}h3{font-size:15px;font-weight:600;margin:0 0 9px}p{margin:0 0 12px}.muted{color:var(--muted);font-size:12px}.section-head{display:flex;align-items:center;justify-content:space-between}.section-head small{color:#899681;font-size:11px}.goals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.goal{padding:17px 0 0;border-top:2px solid #dfe8d8;line-height:1.85;font-size:13px}.goal b{font:12px ui-monospace,monospace;color:#8c9c81;display:block;margin-bottom:8px}.idea-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.idea{background:#f7f9f5;border-radius:12px;padding:20px}.idea p{font-size:13px;color:#6c7965;line-height:1.95;margin:0}.model-panel{border:1px solid #e0e7da;background:linear-gradient(145deg,#f9fbf7,#f0f4ea);border-radius:17px;overflow:hidden}.model-toolbar{display:flex;align-items:center;padding:12px 17px;border-bottom:1px solid #e1e8dc;gap:6px;flex-wrap:wrap}.model-toolbar strong{font-size:12px;font-weight:500;margin-right:auto;color:#74856a}.model-toolbar button,.step-actions button{padding:5px 10px;background:#ffffffc9;border:1px solid #dfe6d8;border-radius:6px;color:#627657;font-size:11px}.model-toolbar button[aria-pressed=true]{background:#4a6855;color:white}#model{height:420px;width:100%;position:relative;display:flex;align-items:center;justify-content:center}#model canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.model-loading{color:#8c9d7d;font-size:12px;padding:24px;text-align:center}.step-panel{padding:20px 23px;background:#fff;border-top:1px solid var(--line)}.step-top{display:flex;gap:14px;align-items:center;font-size:12px;color:#7e8b75}.step-top input{flex:1;min-width:60px;accent-color:#718a61}.step-copy{display:grid;grid-template-columns:1fr auto;gap:14px;margin-top:13px}.step-copy h3{font-size:14px}.step-copy p{color:#74816c;font-size:12px;margin:0}.step-actions{display:flex;gap:8px;align-items:flex-start}.notice{margin:12px 0;color:#87917e;font-size:11px;line-height:1.8}.empty-model{background:var(--soft);padding:25px;border-radius:12px;font-size:13px;color:var(--muted)}details{border-bottom:1px solid var(--line);padding:12px 0}summary{cursor:pointer;font-size:13px;color:#677461}details>div{padding:18px 0}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{font-weight:500;color:#8a9582;background:#f8faf5}th,td{padding:12px 15px;border-bottom:1px solid var(--line);vertical-align:top}td{color:#63705c}ul,ol{padding-left:21px}li{margin:8px 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:25px}.list-box{background:#fafbf8;border:1px solid #e8ece2;border-radius:12px;padding:20px}.list-box ul{margin-bottom:0;font-size:12px;color:#697760}.connections{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.connection{padding:9px 12px;border:1px solid #e3e9dc;border-radius:8px;font-size:11px;color:#6c7f5c}.connection span{color:#9aa88f;margin:0 7px}.flow{border-left:1px solid #dde6d4;padding-left:27px;margin-left:9px}.flow-row{display:grid;grid-template-columns:65px 1fr;gap:20px;position:relative;padding:0 0 28px}.flow-row:before{content:'';position:absolute;left:-32px;top:9px;width:8px;height:8px;border:2px solid white;background:#9aad89;border-radius:50%;box-shadow:0 0 0 1px #d7e0d0}.flow-row .time{font:12px/2 ui-monospace,monospace;color:#8b997f}.flow-row p{font-size:13px;line-height:1.95;color:#6e7c62}.evidence{font-size:11px;color:#93a187}.program-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.program-stage{min-height:220px;background:#f6f8f2;border:1px solid #e5ebde;border-radius:12px;padding:16px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column}.program-stage>img{max-width:100%;width:100%;max-height:260px;object-fit:contain}.program-stage figcaption{font-size:11px;color:#8a997f;margin-top:8px}.costumes{display:flex;gap:12px;flex-wrap:wrap;margin-top:15px}.costume{border:1px solid var(--line);border-radius:9px;padding:10px;text-align:center;width:100px;font-size:10px;color:#839077}.costume img{width:65px;height:60px;object-fit:contain;display:block;margin:auto}.blocks{background:#fafbf9;border:1px solid var(--line);border-radius:12px;padding:20px;max-height:550px;overflow:auto}.blocks img{max-width:100%;height:auto;display:block;margin:auto}.program-instructions{font-size:13px;color:#69775f}.file-links{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.file-links a{font-size:12px;padding:8px 14px;border:1px solid #dfe7d7;border-radius:7px;color:#516b41;background:#fcfdfb}.file-links a:hover{background:#edf3e7}pre{background:#f5f7f2;border:1px solid #e3e9dc;color:#35452c;border-radius:12px;padding:22px;overflow:auto;font:12px/1.85 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre;tab-size:2}.code-bar{display:flex;gap:12px;justify-content:space-between;font-size:12px;color:#87957a;align-items:center}.code-bar button{background:white;border:1px solid var(--line);border-radius:6px;padding:5px 11px;color:#6d805e}.qa-row{border-bottom:1px solid var(--line);padding:16px 0}.qa-row h3{font-size:14px}.qa-row p{font-size:13px;color:#718063;margin:0}.sources{font-size:11px;color:#88957d}.sources li{margin:12px 0}.sources code{font:9px ui-monospace;word-break:break-all;color:#a4ae9b;display:block;margin-top:5px}.source-pages{display:flex;gap:15px;overflow:auto;scroll-snap-type:x mandatory}.source-pages a{min-width:220px;max-width:330px;scroll-snap-align:start}.source-pages img{width:100%;border:1px solid var(--line);border-radius:9px}.loading{padding:120px 20px;color:#88967c;text-align:center}.error{padding:50px 25px;background:#faf7f0;border:1px solid #e9dec8;border-radius:12px;color:#7b6b4e}footer{max-width:1120px;margin:0 auto;padding:25px 0 40px;border-top:1px solid var(--line);color:#a0ab95;font-size:11px;display:flex;justify-content:space-between}.index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.index-card{border:1px solid var(--line);border-radius:12px;padding:20px}.index-card span{font-size:11px;color:#8a9880}.index-card h3{margin:8px 0}.index-card small{font-size:10px;color:#89987d}@media(min-width:1600px){main{padding-top:55px}.hero-art{height:220px}}@media(max-width:1100px){.sidebar{width:195px;padding:25px 13px}.workspace{margin-left:195px}main{padding:30px 30px 70px}header{padding:0 30px}.hero{gap:24px}.hero-art{height:190px}.hero h1{font-size:30px}.goals,.idea-grid{gap:12px}.idea{padding:15px}.program-layout{grid-template-columns:1fr}footer{margin:0 30px}}@media(max-width:760px){.sidebar{display:none}.workspace{margin-left:0}header{height:58px;padding:0 18px;gap:10px;font-size:11px}.head-actions button{display:none}.head-actions a{padding:5px 10px;font-size:10px}main{padding:25px 20px 50px}.hero{grid-template-columns:1fr;gap:15px;margin:20px 0}.hero h1{font-size:31px}.hero-art{height:180px}.hero-meta{gap:12px}.section-nav{margin-bottom:30px;gap:2px}.section-nav a{padding:5px 9px;font-size:11px}.goals,.idea-grid,.two-col{grid-template-columns:1fr}.goal{padding:12px 0}.goal b{display:inline;margin-right:10px}.idea-grid{gap:10px}.idea{padding:18px}.model-toolbar strong{width:100%}#model{height:320px}.step-copy{grid-template-columns:1fr}.step-panel{padding:15px}.step-actions{justify-content:flex-end}h2{font-size:18px}.flow-row{grid-template-columns:45px 1fr;gap:10px}.flow{padding-left:20px}.flow-row:before{left:-25px}.index-grid{grid-template-columns:1fr}footer{margin:0 20px;padding-top:20px;display:block}footer a{display:block;margin-top:9px}table{font-size:11px}td,th{padding:10px 8px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.sidebar,header,.section-nav,footer,.head-actions,.model-toolbar,.step-actions,.file-links,.skip{display:none!important}.workspace{margin:0}main{max-width:none;padding:0;font-size:10px}.hero{margin:0 0 20px}.hero-art{height:130px}section{break-inside:avoid;margin-bottom:25px}#model{height:240px}.flow-row{padding-bottom:14px}.blocks{max-height:none}details{display:block}details>div{display:block}.sources{font-size:9px}pre{white-space:pre-wrap;overflow:visible;font-size:9px}}

.equipment-panel{border:1px solid #e0e5df;border-radius:18px;overflow:hidden;background:#f6f8f4}
.equipment-viewport{height:460px;position:relative;background:radial-gradient(ellipse at 50% 40%,#fff 0%,#eff3ed 75%);overflow:hidden}
.equipment-viewport canvas{display:block;width:100%;height:100%;touch-action:none}
.equipment-caption{display:flex;justify-content:space-between;gap:16px;padding:14px 20px;color:#748075;font-size:12px;border-top:1px solid #e3e9df}
.equipment-focus{margin-left:auto;color:#69786b;font-size:12px}
.equipment-focus select{max-width:210px;margin-left:6px;padding:7px 9px;background:#fff;border:1px solid #d8dfd4;border-radius:8px;color:#354237;font:inherit}
@media(max-width:700px){.equipment-viewport{height:340px}.equipment-focus{width:100%;margin:4px 0}.equipment-caption{flex-direction:column;gap:4px}}
@media print{.equipment-viewport{height:320px}.equipment-focus{display:none}}

.scratch-player{border:1px solid #dce4d9;background:#f5f7f2;border-radius:16px;padding:20px;margin:20px 0 28px;max-width:700px}
.scratch-player button{border:1px solid #d9e2d5;background:white;border-radius:8px;padding:9px 14px;font:inherit;color:#314b39;cursor:pointer}
.scratch-player button:hover{background:#e9f0e4}.scratch-player .player-run{background:#365642;color:white}
.scratch-player canvas{width:480px;max-width:100%;height:auto;aspect-ratio:4/3;border-radius:8px;background:white;touch-action:none;display:block;margin-top:14px}
.scratch-player canvas[hidden],.scratch-player [hidden]{display:none}
.player-controls{display:flex;gap:8px;flex-wrap:wrap}.player-status{font-size:13px;color:#667465;margin:14px 0 0}
.player-speech{font-size:14px;color:#314b39}.player-readout{font-size:11px;color:#7b847a;line-height:1.6}
.player-answer{padding:12px;background:#e9efdf;border-radius:8px}.player-answer label{font-size:14px;display:block;margin-bottom:8px}
.player-answer div{display:flex;gap:8px}.player-answer input{flex:1;min-width:0;padding:9px;border:1px solid #cdd7c6;border-radius:6px;font:inherit}
@media print{.player-controls,.player-answer,.player-load{display:none}}

.player-simulation{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px;margin-top:14px}.player-simulation input{flex:1;min-width:140px;accent-color:#365642}.player-simulation output{font-variant-numeric:tabular-nums;width:32px}
