:root{--paper:#f1eee6;--ink:#2e352f;--muted:#777a6e;--red:#943f30;--line:#d9d8cb;--green:#465f50;--gold:#b38b48;--serif:"Songti SC","Noto Serif CJK SC","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--red);outline-offset:5px}button{transition:color .2s,background .2s,transform .2s}button:hover{color:var(--red)}button:disabled{opacity:.5;cursor:default}a{color:inherit}button[hidden],[hidden]{display:none!important}.site-header{height:88px;border-bottom:1px solid var(--line);margin:0 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:5}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font-family:var(--serif);font-size:24px;letter-spacing:4px;line-height:1.1}.seal{width:40px;height:44px;border-radius:2px;background:var(--red);border:3px double #e4bbaa;color:#f8eddf;text-align:center;padding-top:5px;font-size:28px;letter-spacing:0}.brand-sub{display:block;font:9px var(--sans);letter-spacing:2.7px;margin-top:7px}.mode-tabs{display:flex;height:100%;gap:36px}.mode-tabs button{position:relative;font-size:13px;letter-spacing:1px;padding:0 3px;color:#797c72}.mode-tabs button.active{color:var(--ink)}.mode-tabs button.active:after{content:"";height:2px;background:var(--red);position:absolute;bottom:-1px;left:0;right:0}.nav-dot{width:4px;height:4px;border-radius:50%;background:var(--red);display:inline-block;vertical-align:top;margin:0 0 0 4px}.source-trigger{font-size:12px;letter-spacing:.3px}.book-icon{font-size:18px;vertical-align:-1px;margin-right:5px}.small-arrow{margin-left:12px;color:var(--muted)}#experience{height:calc(100svh - 128px);min-height:660px;position:relative;overflow:hidden;background-image:radial-gradient(ellipse at 53% 47%,#e4e5d765,transparent 62%)}.intro{position:absolute;left:42px;top:53px;width:240px;z-index:2;pointer-events:none}.eyebrow{font-size:10px;color:var(--muted);letter-spacing:2.2px;display:flex;align-items:center;gap:8px}.eyebrow i{height:5px;width:5px;border-radius:100%;background:var(--red)}h1{font-family:var(--serif);font-size:70px;letter-spacing:9px;font-weight:500;margin:25px 0 0;line-height:1.2}h1 span{font-family:var(--serif);display:block;font-size:20px;letter-spacing:4px;margin-top:17px}.intro-copy{font-size:12px;line-height:2.05;color:var(--muted);margin-top:25px;letter-spacing:1px}.location{display:flex;gap:14px;margin-top:26px;font-size:9px;color:#8a8c80;letter-spacing:.8px}.location span+span:before{content:"/";margin-right:14px}.title-rule{width:32px;height:1px;background:var(--gold);margin-top:28px}.facts{display:flex;gap:28px;margin-top:22px}.facts strong{font-family:Georgia,serif;font-size:27px;font-weight:400}.facts strong span{font-family:var(--sans);font-size:9px;margin-left:4px;color:var(--muted)}.facts small{display:block;color:var(--muted);font-size:10px;letter-spacing:2px;margin-top:8px}.viewer{position:absolute;inset:15px 270px 135px 200px}.viewer:before{content:"";position:absolute;left:0;right:0;bottom:3%;height:70%;background-image:linear-gradient(#b2b4a30b 1px,transparent 1px),linear-gradient(90deg,#b2b4a30b 1px,transparent 1px);background-size:32px 32px;transform:perspective(500px) rotateX(55deg);pointer-events:none;mask-image:radial-gradient(ellipse,black,transparent 70%)}canvas{display:block;width:100%;height:100%;outline:none;touch-action:none;position:relative;z-index:1;cursor:grab}canvas:active{cursor:grabbing}.view-marker{position:absolute;left:20%;bottom:36px;display:flex;align-items:center;gap:12px;color:#8b8e81;font-size:9px;letter-spacing:1px;pointer-events:none}.cross{font-size:16px;font-weight:200}.hairline{display:block;background:#b8baab;width:24px;height:1px}.compass{position:absolute;right:30px;bottom:35px;display:flex;align-items:center;gap:7px;color:#6d7567;font-size:10px;pointer-events:none}.compass svg{width:34px;transform:rotate(30deg)}.view-tools{position:absolute;left:42px;bottom:182px;display:flex;gap:4px;z-index:3;align-items:center}.view-tools button{width:33px;height:35px;border:1px solid #d4d6ca;border-radius:3px;background:#f4f1e9a0;font-size:12px}.view-tools button:first-child{font-size:21px}.view-tools button:hover,.view-tools button[aria-pressed=true]{background:#fff9ed;border-color:var(--red);color:var(--red)}.view-tools>span{width:4px}.story-card{position:absolute;right:36px;top:128px;width:270px;z-index:3;padding:23px 22px 18px;background:#faf8f1ed;border:1px solid #e0dfd3;border-top:2px solid var(--green);box-shadow:0 8px 32px #303b2b04;transition:opacity .2s}.card-topline{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;letter-spacing:1px}.card-topline span:first-child{color:var(--green)}.card-overline{font-size:9px;letter-spacing:2px;margin:28px 0 9px;color:#9b9d8f}.story-card h2{font-family:var(--serif);font-size:27px;font-weight:500;line-height:1.5;margin:0 0 16px;letter-spacing:1px}.story-card p{font-size:12px;line-height:1.95;color:#77796d;margin:0 0 15px}.story-card p strong{color:var(--ink);font-weight:500}.mini-diagram{height:77px;margin:14px 0 15px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);padding-bottom:14px}.mini-diagram svg{width:100%;height:100%;fill:none;stroke:var(--green);stroke-width:1.2}.evidence-tag{display:inline-flex;gap:6px;font-size:9px;align-items:center;color:#647765}.evidence-tag:before{content:"";width:4px;height:4px;background:#77907b;border-radius:50%}.simplified{font-size:9px!important;color:#969687!important;line-height:1.6!important;border-top:1px solid var(--line);padding-top:12px;margin-top:14px!important}.card-next{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:11px;color:var(--red);padding:16px 0 0;border-top:1px solid var(--line);margin-top:16px}.card-next b{font-size:18px;font-weight:400}.interaction-hint{position:absolute;bottom:153px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.5px;color:#96998c;white-space:nowrap}.interaction-hint svg{width:13px;height:20px;fill:none;stroke:currentColor;stroke-width:1}.hint-separator{margin:0 10px}.explore-dock{position:absolute;bottom:25px;left:36px;right:36px;border:1px solid #d6d8c9;background:#f9f7f0c9;backdrop-filter:blur(12px);display:flex;align-items:center;gap:32px;min-height:104px;padding:22px 26px;z-index:4}.dock-heading{display:flex;align-items:center;gap:14px;flex-shrink:0}.dock-icon{font-size:32px;color:var(--green);transform:rotate(-10deg)}.dock-heading strong{font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:1px}.dock-heading small{display:block;font-size:10px;color:var(--muted);margin-top:9px}.timeline{flex:1;min-width:0;margin-top:5px}.range-track{height:18px;position:relative;margin:0 20px}.range-track:before{content:"";position:absolute;left:0;right:0;top:7px;height:2px;background:#d7d9cc}.range-fill{position:absolute;top:7px;height:2px;background:var(--red);pointer-events:none;z-index:1}input[type=range]{width:100%;height:16px;position:relative;z-index:2;appearance:none;background:transparent;cursor:ew-resize;margin:0}input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:var(--red);border:3px solid #fbf6ed;border-radius:50%;box-shadow:0 0 0 1px var(--red)}input[type=range]::-moz-range-thumb{width:7px;height:7px;background:var(--red);border:3px solid #fbf6ed;border-radius:50%}.stage-labels{display:flex;justify-content:space-between;margin-top:10px}.stage-labels button{padding:2px 0;font-size:10px;color:#86897c;white-space:nowrap}.stage-labels button.active{color:var(--red)}.dock-actions{display:flex;align-items:center;flex-direction:column;gap:9px;margin-left:4px;min-width:105px}.primary{background:var(--green);border:1px solid var(--green);color:#fbf6e9;border-radius:2px;padding:11px 17px;font-size:11px;letter-spacing:.6px}.primary:hover{background:#344b3b;color:#fff}.primary span{font-size:9px;margin-right:5px}.quiet{color:var(--muted)}.dock-actions .quiet{font-size:10px}footer{height:40px;margin:0 36px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:9px;letter-spacing:1px;color:#8c9081}footer button{font-size:9px;color:#8c9081}footer button span{margin-left:8px}.footer-index{font-size:8px;letter-spacing:1.4px}.loading{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--paper);transition:opacity .5s}.loading.hide{opacity:0;pointer-events:none}.loading-seal{border:1px solid var(--red);color:var(--red);padding:12px;font:24px var(--serif);letter-spacing:4px}.loading p{font-size:12px;letter-spacing:2px;margin-top:24px}.loading small{font-size:10px;color:var(--muted)}.labels{position:absolute;inset:0;z-index:2;pointer-events:none}.part-label{position:absolute;white-space:nowrap;font-size:10px;letter-spacing:1px;background:#fbf9efed;border:1px solid #b7bcab;padding:6px 10px;transform:translate(-50%,-50%);box-shadow:0 3px 10px #313a2710}.part-label:before{content:"";display:inline-block;width:4px;height:4px;background:var(--red);border-radius:50%;margin:0 6px 1px 0}.toast{position:fixed;left:50%;bottom:180px;transform:translate(-50%,10px);padding:12px 22px;background:#2e4036ee;color:#fbf7eb;box-shadow:0 6px 20px #0002;z-index:20;font-size:12px;max-width:85vw;text-align:center;border-radius:3px;opacity:0;pointer-events:none;transition:.2s;line-height:1.7}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{color:var(--ink)}.sources-dialog{width:800px;max-width:calc(100vw - 32px);max-height:85svh;background:#f8f5ec;border:1px solid #c9cebd;padding:0;box-shadow:0 20px 100px #18251540}.sources-dialog::backdrop{background:#293c3255;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:30px 35px 22px;border-bottom:1px solid var(--line)}.dialog-head h2{font:30px var(--serif);font-weight:500;margin:12px 0 0}.close-dialog{font-size:30px;padding:5px 8px}.dialog-body{padding:15px 35px 30px;line-height:1.9;font-size:12px;color:#687060}.dialog-body h3{font:20px var(--serif);color:var(--ink);margin-top:26px}.dialog-body a{color:var(--red);text-underline-offset:4px}.note-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.note-grid>div{border:1px solid var(--line);padding:17px}.note-grid strong{display:block;color:var(--green);margin-bottom:6px}.source-list{padding-left:20px}.source-list li{margin:14px 0}.source-list small{display:block;color:#929586}.assembly-panel{position:absolute;bottom:25px;left:36px;right:36px;display:flex;align-items:center;gap:12px;background:#faf7eedb;border:1px solid var(--line);padding:18px 24px;min-height:105px;z-index:4}.assembly-panel .assembly-lead{width:190px;flex-shrink:0;font:17px var(--serif)}.assembly-lead small{display:block;font:10px var(--sans);color:var(--muted);margin-top:8px}.piece{border:1px solid #d2d5c5;flex:1;padding:13px 8px;text-align:center;background:#f7f5ec;position:relative}.piece span{display:block;font-size:9px;margin-top:6px;color:var(--muted)}.piece.installed{border-color:#9eac96;color:#6e8566;background:#e7edde}.piece.flash{border-color:var(--red);background:#efe0d8}.challenge-reset{font-size:10px;white-space:nowrap;color:var(--muted)}.force-chain{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;margin:20px 0;color:var(--green)}.force-chain b{background:#e7eadf;font-weight:400;padding:5px 7px}.force-toggle{display:block;width:100%;margin-top:18px}.quiz-options{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.quiz-options button{border:1px solid #c6cdbb;padding:8px;font-size:11px}.quiz-options button:hover{background:#e3e8da}.answer-note{background:#e9ecdf;padding:12px!important;margin-top:14px!important;color:var(--green)!important}.story-card .assembly-count{font:40px Georgia,serif;color:var(--green);margin:20px 0 15px}.story-card .assembly-count small{font:13px var(--sans);color:var(--muted)}
@media(min-width:1650px){.intro{left:60px;top:75px}.story-card{right:60px;top:150px;width:295px}.viewer{left:240px;right:320px}.view-tools{left:60px}.explore-dock{left:60px;right:60px}.story-card p{font-size:13px}.story-card h2{font-size:30px}h1{font-size:80px}}
@media(max-width:1150px){.site-header{margin:0 24px}.brand-sub{display:none}.mode-tabs{gap:22px}.source-trigger{font-size:10px}.intro{left:26px;width:190px;top:35px}h1{font-size:55px;letter-spacing:5px}h1 span{font-size:16px;letter-spacing:2px}.intro-copy{font-size:11px}.facts{gap:20px}.viewer{left:180px;right:225px}.story-card{right:24px;width:225px;top:115px;padding:20px 18px}.story-card h2{font-size:23px}.story-card p{font-size:11px}.story-card .mini-diagram{height:62px}.view-tools{left:26px}.explore-dock{left:24px;right:24px;gap:20px;padding:20px}.dock-heading{gap:10px}.dock-heading strong{font-size:15px}.dock-heading small{font-size:9px}.dock-icon{display:none}.stage-labels button{font-size:9px}.footer-index{display:none}}
@media(max-width:800px){.site-header{height:74px;margin:0 18px;gap:10px;flex-wrap:wrap}.brand{font-size:20px;gap:8px}.seal{width:31px;height:35px;font-size:21px}.mode-tabs{gap:18px;order:3;height:36px;justify-content:center;width:100%;position:absolute;top:74px;left:0;border-bottom:1px solid var(--line)}.mode-tabs button{font-size:11px}.source-trigger{font-size:10px}.book-icon{display:none}#experience{height:auto;min-height:970px;padding-top:36px;overflow:hidden}.intro{left:23px;top:62px;width:100%;pointer-events:none}.eyebrow{font-size:8px}h1{font-size:46px;letter-spacing:5px;margin-top:14px}h1 span{font-size:13px;margin-top:9px}.intro-copy{display:none}.location{margin-top:14px;font-size:8px}.title-rule{display:none}.facts{position:absolute;right:48px;top:42px;gap:18px}.facts strong{font-size:24px}.facts small{font-size:9px}.viewer{left:0;right:0;top:190px;bottom:auto;height:380px}.viewer:before{bottom:0}.view-marker{left:24px;bottom:8px;font-size:8px}.compass{right:24px;bottom:8px}.view-tools{left:auto;right:23px;top:160px;bottom:auto;gap:4px}.view-tools button{height:29px;width:29px;font-size:10px}.view-tools button:first-child{font-size:18px}.story-card{left:22px;right:22px;top:612px;width:auto;padding:18px 20px;min-height:200px}.card-topline{font-size:9px}.card-overline{margin:12px 0 5px;font-size:8px}.story-card h2{font-size:23px;margin-bottom:8px}.story-card h2 br{display:none}.story-card p{max-width:none;font-size:11px;line-height:1.8;margin-bottom:9px}.mini-diagram{display:none}.simplified{margin-top:9px!important;font-size:8px!important;padding-top:8px}.card-next{padding-top:10px;margin-top:10px}.interaction-hint{top:579px;bottom:auto;font-size:9px}.explore-dock{position:relative;left:auto;right:auto;bottom:auto;margin:850px 22px 22px;min-height:145px;padding:16px;gap:12px;flex-wrap:wrap}.dock-heading{order:0;width:60%}.dock-heading strong{font-size:14px}.dock-heading small{font-size:9px}.dock-actions{order:1;margin-left:auto;min-width:auto;gap:7px}.primary{padding:9px 13px;font-size:10px}.timeline{width:100%;flex:auto;order:2;margin-top:0}.range-track{margin:0 10px}.stage-labels{margin-top:6px}.stage-labels button{font-size:8px}.dock-actions .quiet{font-size:9px}footer{margin:0 22px;font-size:8px;height:50px;gap:12px}footer button{font-size:8px;text-align:right;line-height:1.6}.assembly-panel{position:relative;margin:865px 22px 22px;left:auto;right:auto;bottom:auto;flex-wrap:wrap;padding:16px;gap:8px}.assembly-panel .assembly-lead{width:100%;font-size:15px}.piece{flex:1 1 28%;padding:10px 5px;font-size:11px}.challenge-reset{margin-left:auto}.dialog-head{padding:22px}.dialog-head h2{font-size:24px}.dialog-body{padding:10px 22px 25px}.note-grid{grid-template-columns:1fr}.toast{bottom:25px}.story-card .assembly-count{font-size:28px;margin:10px 0}.force-chain{margin:10px 0;font-size:10px}.force-toggle{margin-top:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Small screens keep the lesson and controls in normal flow, so longer explanations never overlap. */
@media(max-width:800px){#experience{padding-top:612px;min-height:0}.facts{top:28px;margin-top:0}.story-card{position:relative;left:auto;right:auto;top:auto;margin:0 22px;min-height:0}.explore-dock{margin:20px 22px 22px}.assembly-panel{margin:20px 22px 22px}.story-card p{font-size:12px}.story-card h2{font-size:24px}.stage-labels button{font-size:9px}.interaction-hint{top:579px}}
@media(min-width:801px) and (max-height:820px){.story-card{top:58px;padding:17px 19px}.card-overline{margin-top:17px}.story-card h2{font-size:24px;margin-bottom:10px}.story-card p{font-size:11px;line-height:1.8}.mini-diagram{height:48px;margin:8px 0 12px;padding-bottom:8px}.simplified{font-size:8px!important;padding-top:9px}.card-next{margin-top:10px;padding-top:10px}.intro{top:35px}}
