:root{--paper: #f4f3ef;--sheet: #fdfdfb;--ink: #232e38;--ink-2: #5a6873;--ink-3: #939ea6;--blue: #1f5aab;--blue-deep: #16407e;--blue-wash: #edf2f9;--alert: #c2410c;--alert-wash: #fbeee6;--line: #d7d3c9;--line-soft: #e8e5dd;--serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}body{margin:0;font-family:var(--sans);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent}button{font-family:inherit;touch-action:manipulation}input{touch-action:manipulation}@media(pointer:fine){html{overscroll-behavior:none}}a{color:var(--blue)}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:2px}.app{min-height:100vh;display:flex;flex-direction:column;overflow-x:clip}.header{background:var(--sheet);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.header-inner{max-width:980px;margin:0 auto;padding:20px 24px 10px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}.brand h1{margin:0;font-family:var(--serif);font-weight:700;font-size:26px;letter-spacing:6px;line-height:1.2}.brand-sub{margin:4px 0 0;font-size:12.5px;color:var(--ink-2);letter-spacing:.3px}.brand-sub b{color:var(--ink);font-weight:600}.search-box{position:relative;width:320px;max-width:100%}.search-box input{width:100%;padding:8px 30px 8px 12px;border:none;border-bottom:1.5px solid var(--line);background:transparent;font-size:14px;color:var(--ink);outline:none;transition:border-color .12s}.search-box input::placeholder{color:var(--ink-3)}.search-box input:focus{border-bottom-color:var(--blue)}.search-clear{position:absolute;right:2px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--ink-3);font-size:13px;cursor:pointer;padding:4px}.search-clear:hover{color:var(--ink)}.tabs{max-width:980px;margin:0 auto;padding:0 24px;display:flex;gap:28px;overflow-x:auto}.tab{border:none;background:none;padding:8px 2px 9px;font-size:14px;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;letter-spacing:1px}.tab:hover{color:var(--ink)}.tab.active{color:var(--blue-deep);border-bottom-color:var(--blue-deep);font-weight:600}.main{max-width:980px;width:100%;margin:0 auto;padding:28px 24px 72px;flex:1}.view-intro{font-size:13px;color:var(--ink-2);border-left:3px solid var(--line);padding:2px 0 2px 12px;margin-bottom:24px}.view-intro b{color:var(--ink)}.stage-timeline{display:flex;flex-direction:column}.stage-item{display:flex;gap:20px}.stage-rail{display:flex;flex-direction:column;align-items:flex-start}.stage-no{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--blue-deep);width:30px;padding-top:9px;letter-spacing:1px}.stage-rail-line{width:1px;flex:1;background:var(--line);margin:4px 0 4px 7px;min-height:10px}.stage-item:last-child .stage-rail-line{display:none}.stage-body{flex:1;padding-bottom:8px;min-width:0}.stage-head{width:100%;display:flex;align-items:baseline;gap:12px;padding:8px 10px 8px 0;background:none;border:none;cursor:pointer;text-align:left}.stage-head:hover .stage-name{color:var(--blue-deep)}.stage-name{font-family:var(--serif);font-size:19px;font-weight:700;letter-spacing:3px;color:var(--ink);transition:color .12s}.stage-desc{flex:1;font-size:12.5px;color:var(--ink-3);letter-spacing:.5px}.stage-count{font-size:12.5px;color:var(--ink-2);border:1px solid var(--line);padding:0 8px;border-radius:2px;white-space:nowrap}.stage-arrow{color:var(--ink-3);font-size:11px}.stage-arrow.open{transform:rotate(180deg)}.stage-detail{margin:2px 0 14px;padding-left:12px;border-left:1px solid var(--line-soft)}.filter-row{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:8px}.chip.filter{font-size:12.5px;border:none;background:none;color:var(--ink-2);padding:3px 9px;letter-spacing:.5px}.chip.filter:hover{color:var(--ink)}.chip.filter.active{color:var(--blue-deep);background:var(--blue-wash);border-radius:2px}.tip-list{display:flex;flex-direction:column}.tip{padding:10px 12px;border-bottom:1px solid var(--line-soft)}.tip:hover{background:var(--sheet)}.tip.high{border-left:3px solid var(--alert);margin-left:-3px;padding-left:12px}.tip-text{font-size:14.5px;line-height:1.8;color:var(--ink)}.tip.high .tip-text{font-weight:500}.tip-mark{font-family:var(--serif);font-size:12px;color:var(--alert);border:1px solid currentColor;padding:0 4px;margin-right:7px;border-radius:2px;vertical-align:1px;letter-spacing:2px}.tip-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:4px;flex-wrap:wrap}.tip-chips{display:flex;flex-wrap:wrap;gap:2px 10px}.chip{border:none;background:none;padding:0;font-size:12px;color:var(--ink-3);cursor:pointer;letter-spacing:.5px}.chip:before{content:"#";opacity:.55;margin-right:1px}.chip:hover{color:var(--blue)}.chip-video{font-size:11.5px;color:var(--ink-3)}.chip-video:before{content:""}.chip-video:hover{color:var(--blue)}mark{background:none;color:var(--alert);font-weight:600;padding:0}.index-list{display:flex;flex-direction:column}.index-row{display:flex;align-items:baseline;gap:10px;border:none;background:none;padding:11px 6px;cursor:pointer;text-align:left;border-bottom:1px solid var(--line-soft);font-size:15px;color:var(--ink)}.index-row:hover{background:var(--sheet)}.index-row:hover .index-name{color:var(--blue-deep)}.index-name{font-family:var(--serif);font-size:17px;font-weight:700;letter-spacing:3px;transition:color .12s}.index-leader{flex:1;border-bottom:1.5px dotted var(--line);transform:translateY(-4px);min-width:30px}.index-count{font-size:13px;color:var(--ink-2)}.topic-group{margin-bottom:26px}.topic-group-title{font-family:var(--serif);font-size:14px;font-weight:700;color:var(--ink-2);margin:0 0 8px;letter-spacing:3px;border-bottom:1px solid var(--line);padding-bottom:4px}.topic-chips{display:flex;flex-wrap:wrap;gap:4px 18px}.topic-chip{border:none;background:none;padding:3px 0;font-size:14px;color:var(--ink);cursor:pointer}.topic-chip:hover{color:var(--blue-deep)}.topic-chip-count{color:var(--ink-3);font-size:12px;margin-left:4px}.back-btn{border:none;background:none;color:var(--blue);font-size:13.5px;cursor:pointer;padding:0;margin-bottom:14px;letter-spacing:1px}.back-btn:hover{color:var(--blue-deep);text-decoration:underline}.detail-title{font-family:var(--serif);font-size:24px;font-weight:700;letter-spacing:4px;margin:0 0 4px}.detail-count{font-size:13px;color:var(--ink-3);font-weight:400;letter-spacing:1px;margin-left:6px}.video-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.video-meta{margin:0;font-size:13px;color:var(--ink-2)}.xhs-link{color:var(--blue);font-size:13px;text-decoration:none;border-bottom:1px solid currentColor}.xhs-link:hover{color:var(--blue-deep)}.video-list{display:flex;flex-direction:column}.video-row{display:flex;align-items:baseline;gap:14px;background:none;border:none;border-bottom:1px solid var(--line-soft);padding:10px 6px;cursor:pointer;text-align:left;font-size:14px;color:var(--ink)}.video-row:hover{background:var(--sheet)}.video-id{color:var(--ink-3);font-size:12.5px;min-width:36px;font-family:var(--serif)}.video-title{flex:1}.video-row:hover .video-title{color:var(--blue-deep)}.video-date{color:var(--ink-3);font-size:12.5px}.video-likes{color:var(--ink-2);font-size:12.5px;min-width:46px;text-align:right}.video-tipcount{color:var(--ink-2);font-size:12.5px;min-width:40px;text-align:right}.empty{text-align:center;color:var(--ink-3);padding:70px 0;font-size:14px;letter-spacing:1px}.footer{border-top:1px solid var(--line);padding:18px 24px;text-align:center;font-size:12px;color:var(--ink-3);background:var(--sheet);letter-spacing:.5px}@media(max-width:640px){.stage-desc,.video-date{display:none}.brand h1{font-size:21px;letter-spacing:4px}.search-box{width:100%}.header-inner{padding:14px 16px 6px}.tabs{padding:0 16px;gap:20px}.main{padding:20px 16px 56px}.index-name{font-size:16px}.detail-title{font-size:20px;letter-spacing:2px}}.room3d-wrap{width:min(1600px,100vw - 40px);position:relative;left:50%;transform:translate(-50%);background:#f9faf7;border:1px solid #d5ddd4;border-radius:12px;overflow:hidden;--r3d-ink: #344e42}.r3d-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid #dce2d9}.r3d-heading h2{font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:2px;margin:0;color:#2d4337}.r3d-heading h2 span{color:#697d70;font-size:19px}.r3d-heading p{margin:3px 0 0;color:#778276;font-size:12px}.r3d-heading p span{margin:0 9px;color:#adb6a8}.r3d-reference-btn{padding:7px 12px;font-size:12px;border:1px solid #ccd5c8;background:transparent;border-radius:5px;color:#48634f;cursor:pointer;white-space:nowrap}.r3d-reference-btn span{margin-right:4px}.r3d-workspace{display:flex;min-height:570px;height:clamp(570px,calc(100dvh - 315px),860px)}.room3d-canvas{position:relative;flex:1;min-width:0;background:#e9eeea;overflow:hidden}.room3d-mount{position:absolute;inset:0}.room3d-mount canvas{display:block;cursor:grab}.r3d-toolbar{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:3px;padding:4px;background:#fafcf8f0;box-shadow:0 2px 12px #344e420c;border:1px solid #d8e0d5;border-radius:7px;color:#48604c}.r3d-toolbar button{border:0;background:transparent;color:#778375;padding:7px 9px;font-size:12px;border-radius:4px;cursor:pointer}.r3d-toolbar button:hover,.r3d-toolbar button.is-on{color:#385b45;background:#e5ece2}.r3d-wall-select{display:flex;align-items:center;gap:6px;font-size:12px;padding-left:7px}.r3d-wall-select>span{color:#879282}.r3d-wall-select select{padding:6px 4px;border:0;font:inherit;color:#385b45;background:transparent;cursor:pointer}.r3d-toolbar-divider{height:17px;width:1px;background:#dbe1d6;margin:0 4px}.r3d-zoom{position:absolute;bottom:64px;right:18px;display:flex;flex-direction:column;border:1px solid #d1dace;background:#f9fbf6eb;border-radius:6px;overflow:hidden}.r3d-zoom button{border:0;background:transparent;width:36px;height:36px;font-size:19px;line-height:1;color:#59715c;cursor:pointer}.r3d-zoom button+button{border-top:1px solid #dce3d7}.r3d-zoom button:hover{background:#e0e9dc}.r3d-canvas-bottom{position:absolute;bottom:16px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;gap:12px}.room3d-hint{margin:0;font-size:11px;color:#6f7f72;line-height:1.9}.room3d-hint span{display:block;color:#8b988c}.r3d-view-name{font-size:11px;color:#758778;border-left:2px solid #96ab97;padding-left:7px}.room3d-tooltip{position:absolute;z-index:5;pointer-events:none;background:#344e42;color:#f8fcf5;font-size:12px;padding:7px 11px;border-radius:5px;max-width:210px;box-shadow:0 4px 12px #304a3e20}.room3d-tooltip span{margin-left:10px;color:#b5cbb8;font-size:10px}.r3d-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#e9eeea;font-size:13px;color:#5d7663;padding:32px;text-align:center}.r3d-loading>span{width:24px;height:24px;border:2px solid #d1ddcf;border-top-color:#6a8b70;border-radius:50%;animation:r3d-spin 1s linear infinite;margin-bottom:12px}.r3d-loading button{padding:8px 18px;border:1px solid #c5d1c0;color:inherit;border-radius:5px;cursor:pointer;background:#f9fcf6}@keyframes r3d-spin{to{transform:rotate(360deg)}}.room3d-panel{width:310px;flex-shrink:0;background:#f9faf7;border-left:1px solid #d8e0d4;overflow-y:auto;overscroll-behavior:contain;padding:22px 22px 28px;scrollbar-width:thin;scrollbar-color:#cad4c6 transparent}.room3d-panel .detail-title{margin:14px 0;font-size:20px}.room3d-panel .tip-card{padding:14px 12px}.r3d-panel-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.r3d-panel-title h3{font-size:17px;font-family:var(--serif);font-weight:600;color:#344e42;margin:0}.r3d-panel-title>span{color:#8d9b88;font-size:10px;white-space:nowrap}.r3d-mini{width:100%;height:190px;display:block;margin:18px 0 0}.r3d-mini text{font:4.3px var(--sans);fill:#69806c;pointer-events:none}.r3d-mini g{cursor:pointer;outline:none}.r3d-mini g:hover rect,.r3d-mini g:focus-visible rect{fill:#c9dcc5;stroke:#6d8a6d;stroke-width:.8px}.r3d-mini-caption{text-align:center;color:#8c9a85;font-size:10px;margin:4px 0 22px}.r3d-plan-facts{margin:0;border-top:1px solid #e1e6db}.r3d-plan-facts>div{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px solid #e1e6db;gap:6px}.r3d-plan-facts dt{color:#4d6754;font-size:14px;font-weight:500}.r3d-plan-facts dd{margin:0;font-size:11px;color:#8a9783}.r3d-materials{padding:17px 0}.r3d-materials h4{font-size:11px;color:#6d7f66;font-weight:500;margin:0 0 10px}.r3d-materials>div{display:flex;align-items:center;gap:5px}.r3d-materials span{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000008}.r3d-materials p{margin:0 0 0 5px;font-size:10px;color:#8d9985}.r3d-panel-note{font-size:10px;line-height:1.9;color:#94a08c;margin:0}.r3d-tip-note{font-size:11px;line-height:1.9;color:#6f8268;padding-top:15px;margin:16px 0 0;border-top:1px solid #e1e6db}.room3d-none{font-size:13px;padding:20px 0;color:#889681}.room3d-presets{display:flex;gap:5px;padding:11px 16px;border-top:1px solid #d8e0d4;overflow-x:auto;scrollbar-width:thin}.r3d-preset{border:1px solid transparent;background:transparent;color:#7b8b75;font-size:12px;padding:7px 13px;border-radius:5px;cursor:pointer;white-space:nowrap;flex-shrink:0}.r3d-preset:hover{background:#edf1e8;color:#476542}.r3d-preset.active{background:#426650;color:#f9fcf6}.r3d-reference{width:min(1400px,94vw);max-height:92dvh;padding:0;border:1px solid #c8d4c3;border-radius:10px;background:#fafbf8;box-shadow:0 24px 100px #233b3040;color:#3e5942}.r3d-reference::backdrop{background:#1b302dcc}.r3d-reference-head{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;position:sticky;top:0;background:#fafbf8}.r3d-reference h3{font-size:15px;margin:0;font-weight:500}.r3d-reference-head button{width:36px;height:36px;background:transparent;border:1px solid #d6dfd0;border-radius:5px;cursor:pointer;color:#557353}.r3d-reference img{display:block;width:100%;height:auto}.r3d-reference>p{font-size:11px;padding:0 20px 10px;color:#829077}@media(min-width:1500px){.room3d-panel{width:340px;padding:26px}.r3d-mini{height:220px}}@media(max-width:1000px){.room3d-panel{width:270px;padding:18px}.r3d-mini{height:160px}.r3d-workspace{min-height:530px}}@media(max-width:760px){.room3d-wrap{width:calc(100vw - 20px);border-radius:8px}.r3d-heading{padding:13px 14px;gap:8px}.r3d-heading h2{font-size:19px;letter-spacing:1px}.r3d-heading h2 span{font-size:15px}.r3d-heading p{font-size:10px}.r3d-heading p span{margin:0 5px}.r3d-reference-btn{font-size:10px;padding:7px}.r3d-reference-btn span{display:none}.r3d-workspace{flex-direction:column;height:auto;min-height:0}.room3d-canvas{height:57dvh;min-height:390px;max-height:640px;flex:none}.r3d-toolbar{left:10px;right:10px;top:10px;width:fit-content;max-width:calc(100% - 20px);gap:1px}.r3d-toolbar button{font-size:10px;padding:7px}.r3d-wall-select{font-size:10px;gap:3px;padding-left:4px}.r3d-toolbar-divider{margin:0 2px}.r3d-canvas-bottom{left:12px;right:12px;bottom:12px}.room3d-hint{font-size:9px}.room3d-hint span{display:none}.r3d-view-name{font-size:9px}.r3d-zoom{right:10px;bottom:42px}.r3d-zoom button{width:32px;height:32px}.room3d-panel{width:100%;border-left:0;border-top:1px solid #d8e0d4;padding:18px;max-height:420px}.room3d-panel-intro{display:grid;grid-template-columns:1fr 1fr;column-gap:18px}.r3d-panel-title,.r3d-mini-caption,.r3d-tip-note{grid-column:1 / -1}.r3d-mini{grid-column:1;grid-row:2 / 4;height:170px;margin-top:10px}.r3d-mini-caption{margin:0 0 14px;grid-row:4}.r3d-plan-facts{margin-top:16px}.r3d-plan-facts>div{display:block;padding:7px 0}.r3d-plan-facts dt{font-size:12px}.r3d-plan-facts dd{font-size:9px}.r3d-materials{display:none}.r3d-panel-note{grid-column:1 / -1}.r3d-tip-note{margin-top:10px;padding-top:10px}.room3d-presets{padding:8px 10px;gap:2px}.r3d-preset{font-size:11px;padding:7px 10px}}@media(prefers-reduced-motion:reduce){.r3d-loading>span{animation:none}}
