@charset "UTF-8";
:root{color-scheme:light;--ink:#343d59;--muted:#8a90a5;--accent:#8771b5;--accent-soft:#8771b520;--line:#8592ab28;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#d9dfe9;color:var(--ink);font-size:12px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{border:0;cursor:pointer;color:inherit;background:none}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #9687bc;outline-offset:4px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#abb3c4;border-radius:5px}::selection{background:#a8a1d345}.site-shell,.showcase,.stage,.world{position:absolute;inset:0}.stage{background:radial-gradient(ellipse at 50% 25%,#eff0f6,#ccd7e5);overflow:hidden}.stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,transparent 35%,#7988aa13);z-index:2}.world canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.world canvas.dragging{cursor:grabbing}
.header{position:absolute;z-index:8;inset:28px 30px auto;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.brand{display:flex;align-items:center;gap:10px;background:#fafaf7ec;border:1px solid #ffffffc9;border-radius:14px;padding:13px 20px 13px 13px;box-shadow:0 7px 30px #56637f13;backdrop-filter:blur(20px);pointer-events:auto}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:#827799;color:#f9f7ff;border-radius:10px;font:22px serif}.brand-copy strong{display:block;font-size:14px;letter-spacing:1px;font-weight:600}.brand-copy small{display:block;color:#9898a7;font:7px/1.5 Consolas,monospace;letter-spacing:1.5px;margin-top:4px}.header-actions{display:flex;gap:9px;align-items:center;pointer-events:auto}.header-button,.back-overview{display:flex;align-items:center;justify-content:center;gap:8px;height:40px;background:#fafaf7e8;border:1px solid #fffffff0;border-radius:22px;padding:0 15px;font-size:10px;box-shadow:0 5px 18px #5364820d;backdrop-filter:blur(15px)}.header-button:hover,.back-overview:hover{background:#fff;box-shadow:0 5px 25px #53648223}.header-button svg{width:16px;height:16px}.works-count{font:12px Georgia,serif;color:#6e7594;border-left:1px solid #cdd1db;padding-left:10px}.categories{position:absolute;z-index:8;bottom:32px;left:50%;transform:translateX(-50%);display:flex;align-items:stretch;gap:4px;padding:7px;background:#fbfaf6e8;backdrop-filter:blur(20px);border:1px solid #fff;border-radius:18px;box-shadow:0 12px 45px #485b7e1d;max-width:calc(100% - 160px)}.category{min-width:83px;padding:11px 12px 10px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8b8e9e;position:relative;transition:background .25s,transform .25s}.category>svg{width:25px;height:25px;stroke-width:1.4;color:var(--zone-color,#939ab3)}.category-name{font-size:9px;white-space:nowrap}.category-count{display:none}.category:hover{background:#ececf4;transform:translateY(-3px)}.category.active{background:#88809c;color:#fff;box-shadow:0 3px 9px #77718b29}.category.active>svg{color:#fff}.category.active:before{content:"";position:absolute;top:6px;right:7px;width:4px;height:4px;background:#e6e2f2;border-radius:50%}
.stage-tools{position:absolute;right:29px;bottom:36px;z-index:8;display:flex;gap:7px}.small-icon{display:grid;place-items:center;width:33px;height:33px;border:1px solid #ffffffbf;border-radius:10px;background:#fafaf5bb;color:#7a8298;backdrop-filter:blur(10px);font-size:15px}.small-icon:hover{background:#fff;color:#5b6682}.small-icon svg{width:15px;height:15px}.scene-note,.stage-project,.stage-caption{display:none}.scene-modes{position:absolute;z-index:8;top:105px;right:30px;display:flex;background:#fafaf5ec;border:1px solid #fff;padding:4px;border-radius:11px;box-shadow:0 7px 20px #66708715;gap:3px}.scene-modes button{font-size:10px;padding:9px 15px;border-radius:7px;color:#9294a5}.scene-modes button.active{background:#847b98;color:#fff}.scene-modes button:hover{color:#514d69}.scene-modes button.active:hover{color:#fff}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:11px;background:#e3e7ee;z-index:5;color:#8990a4;font-size:11px;transition:opacity .5s}.loading i{width:18px;height:18px;border:1px solid #c0c6d4;border-top-color:#84779e;border-radius:50%;animation:spin 1s linear infinite}.loading.done{opacity:0;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}
.work-summary{position:absolute;z-index:9;left:30px;top:116px;width:278px;background:#fafaf5ed;border:1px solid #ffffffeb;border-radius:18px;box-shadow:0 20px 60px #59668122;backdrop-filter:blur(24px);padding:18px;max-height:calc(100dvh - 230px);overflow:auto;animation:guide-in .35s cubic-bezier(.22,.8,.3,1)}@keyframes guide-in{from{opacity:0;translate:-22px 0}to{opacity:1;translate:0}}
.guide-heading{display:flex;align-items:center;justify-content:space-between;color:#9999a7;font-size:8px;letter-spacing:.6px}.guide-close{border:1px solid #cbd0da70;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;font-size:15px;color:#9094a5}.guide-close:hover{background:#e8eaf1}.guide-preview{height:112px;margin:11px 0 16px;position:relative;display:grid;place-items:center;overflow:hidden;border-radius:11px;background:radial-gradient(ellipse,var(--guide-glow,#c0b5d347),transparent 70%)}.guide-preview:before,.guide-preview:after{content:"";position:absolute;border:1px solid var(--accent);opacity:.15;border-radius:50%;width:157px;height:44px;transform:rotate(-15deg);bottom:18px}.guide-preview:after{width:115px;height:31px;bottom:24px;opacity:.2}.guide-object{position:relative;z-index:1;width:78px;height:70px;transform:perspective(400px) rotateY(-22deg) rotateX(15deg);border-radius:13px;border:2px solid #fff;background:linear-gradient(135deg,#fff,var(--guide-glow));box-shadow:8px 10px 0 #d7d9e885,16px 18px 22px #7e80a321;display:grid;place-items:center;color:var(--accent)}.guide-object svg{width:40px;height:40px;stroke-width:1.2}.guide-floating-chip{position:absolute;left:calc(50% + 42px);top:9px;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:#fff9;box-shadow:0 3px 8px #747c9e1a;color:var(--accent);font-size:14px;transform:rotate(12deg)}.project-kicker{font:7px Consolas,monospace;color:#9d98aa;letter-spacing:.6px;margin-bottom:9px;line-height:1.7}.summary-title{font-size:18px;font-weight:600;line-height:1.5;margin:0 0 9px;color:#4c4b63}.summary-title.long{font-size:16px}.summary-desc{font-size:10px;color:#8c8d9d;line-height:1.9;margin:0 0 15px}.guide-features{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:18px}.guide-features span{font-size:8px;background:#edeef4b0;padding:5px 7px;border-radius:5px;color:#89899d;line-height:1.5}.primary-button,.secondary-button{display:inline-flex;justify-content:center;align-items:center;gap:12px;border-radius:8px;font-size:11px;height:38px;padding:0 16px;transition:.2s}.primary-button{background:#877c9c;color:#fff;width:100%;font-weight:500;box-shadow:0 3px 8px #77718913}.primary-button:hover{background:#74698c;transform:translateY(-1px)}.primary-button>span{margin-left:auto;font-size:17px}.guide-actions{display:flex;flex-direction:column;gap:7px}.secondary-button{border:1px solid #cfd1ded0;color:#86859a;background:transparent}.secondary-button:hover{background:#eeeef5}.disabled-entry{background:#e0e2ec;color:#9397aa;box-shadow:none}.guide-tools{display:flex;gap:8px;border-top:1px solid #d7d9e380;margin-top:16px;padding-top:13px}.guide-tools button{flex:1;font-size:9px;color:#9a98aa;display:flex;align-items:center;justify-content:center;gap:5px}.guide-tools button svg{width:12px;height:12px}.guide-tools button:hover{color:#6a6183}.access-note{font-size:8px;color:#a19cab;margin:11px 0 0}.scene-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;color:#8b91a7}.scene-fallback>span{font:80px serif;color:#9b94b2}.scene-fallback>strong{font-size:18px}.scene-fallback p{font-size:11px}
.overview-labels,.architecture-labels{position:absolute;inset:0;pointer-events:none;z-index:3}.district-label{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);display:flex;align-items:center;gap:6px;padding:7px 10px;background:#f7f9f2e6;border:1px solid #ffffffeb;box-shadow:0 4px 16px #596b8718;color:#65718b;border-radius:9px;font-size:9px;white-space:nowrap;transition:background .2s,box-shadow .2s}.district-label small{display:none}.district-label .overview-zone-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:#fff8;font:17px/1 Georgia,serif;color:var(--district)}.district-label:after{content:"";width:1px;height:9px;position:absolute;left:50%;bottom:-10px;background:#fff}.district-label:hover{background:#fff;box-shadow:0 7px 24px #5c608b35}.project-label{font-size:9px;padding:8px 10px}.project-label:before{content:"↗";color:var(--district);font-size:11px}.district-label.selected{background:#fff;border-color:var(--district);box-shadow:0 0 0 3px #ffffff70,0 5px 20px #78639225}
.architecture-label{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);width:var(--label-width,130px);background:#fbfcf6e8;border:1px solid #fff;border-top:2px solid var(--node-color);border-radius:8px;padding:8px 10px;box-shadow:0 4px 20px #54627e1c;text-align:left}.architecture-label strong{display:block;font-size:10px;font-weight:500;color:#66718a;margin-bottom:4px}.architecture-label span{display:block;font-size:9px;color:#969aac;line-height:1.5;overflow-wrap:anywhere}.architecture-label .node-extra{font-size:8px;margin-top:3px;color:#a6aabd}.architecture-label:hover{background:#fff;box-shadow:0 5px 24px #54627e35}.architecture-label:after{content:"";position:absolute;left:50%;bottom:-11px;height:10px;width:1px;background:#fff}
.backdrop{position:fixed;inset:0;background:#27365355;backdrop-filter:blur(16px);z-index:20}.project-dialog,.catalog-dialog{position:fixed;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1040px,calc(100% - 60px));max-height:calc(100dvh - 60px);display:flex;flex-direction:column;background:#f8f9f5f5;border:1px solid #ffffffeb;border-radius:20px;box-shadow:0 30px 100px #263f5b2e;overflow:hidden}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 28px 18px}.dialog-header h2{font-size:21px;color:#4d5671;margin:0;font-weight:500}.dialog-header small{font-size:9px;color:#979bb0;display:block;margin-bottom:7px}.close-button{display:grid;place-items:center;width:29px;height:29px;flex:none;border:1px solid #d1d7e2;border-radius:50%;font-size:19px;color:#929bb0}.close-button:hover{background:#e8edf4}.dialog-actions{display:flex;align-items:center;gap:10px;padding:0 28px 18px}.dialog-actions .primary-button{width:auto;min-width:123px}.dialog-actions .primary-button,.dialog-actions .secondary-button{height:34px;font-size:10px}.dialog-tabs{display:flex;gap:24px;padding:0 28px;border-bottom:1px solid #d9dfe980}.dialog-tabs button{font-size:11px;color:#9ba2b5;padding:11px 0;position:relative}.dialog-tabs button.active{color:#6e6785}.dialog-tabs button.active:after{content:"";height:2px;background:#9285ac;left:0;right:0;bottom:-1px;position:absolute}.dialog-body{overflow:auto;padding:24px 28px 30px;min-height:150px;overscroll-behavior:contain}.dialog-intro{font-size:11px;color:#8c95aa;line-height:2.1;margin:0 0 24px}.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.feature-card{border:1px solid #d5dce780;border-radius:10px;padding:15px;background:#f1f4f6;font-size:10px;line-height:1.9;color:#959cae}.feature-card b{display:block;color:#737e95;font-size:11px;font-weight:500;margin-bottom:5px}.architecture-intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:15px}.architecture-intro h3{font-size:14px;color:#65718a;font-weight:500;margin:0}.architecture-intro>span{font-size:9px;color:#a1a9bb}.architecture-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.architecture-layer{border:1px solid #d8dfeb;background:linear-gradient(135deg,#fff,#eef2f7);box-shadow:0 4px 0 #e3e8ef80;border-radius:12px;padding:17px 15px;min-height:160px}.layer-header{display:flex;align-items:center;gap:10px;border-bottom:1px solid #d8dfeb80;padding-bottom:13px;margin-bottom:13px}.tech-symbol{width:30px;height:31px;display:grid;place-items:center;border-radius:8px;background:#e8edf5;color:#8a92ad;font:600 11px Consolas,monospace;flex:none}.layer-header h4{font-size:12px;font-weight:500;margin:0 0 4px;color:#69758e}.layer-header p{font-size:8px;color:#a2aabd;margin:0}.layer-no{font:9px monospace;color:#b4bdcf;align-self:flex-start;margin-left:auto}.tech-items{display:flex;gap:6px;flex-wrap:wrap}.tech-item{font-size:9px;line-height:1.5;border:1px solid #d8e0eb;background:#f7f9fb;color:#959eb2;border-radius:5px;padding:6px 7px;overflow-wrap:anywhere}.tech-item.primary{color:#74839e;background:#eaf0f8}.deploy-details{border:1px solid #d8dfea;border-radius:9px;padding:12px 14px;margin-top:22px;font-size:10px;color:#a0a7b8}.deploy-details summary{cursor:pointer;color:#8b94a9}.deploy-details p{line-height:1.9;overflow-wrap:anywhere}.catalog-dialog{padding-bottom:24px}.search{display:flex;align-items:center;gap:10px;border:1px solid #d5dce8;border-radius:9px;background:#eef1f6;margin:0 28px;padding:11px 14px}.search svg{width:16px;height:16px;color:#a0aabd;flex:none}.search input{width:100%;border:0;outline:none;background:none;color:#65738c;font-size:11px}.search input::placeholder{color:#a3adbf}.catalog-filters{display:flex;flex-wrap:wrap;gap:6px;padding:15px 28px 5px}.catalog-filters button{font-size:9px;color:#939eb2;border:1px solid #dbe0e9;border-radius:6px;padding:6px 9px}.catalog-filters button.active{background:#9287a5;color:#fff;border-color:#9287a5}.search-status{font-size:9px;color:#aab2c0;padding:9px 28px 13px}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 28px;overflow:auto}.work-card{border:1px solid #d8dfeb;background:#eff3f6;border-radius:11px;padding:14px;display:flex;gap:12px;align-items:center;text-align:left;min-height:90px}.work-card:hover{border-color:#aa9cbe;background:#fff}.work-icon{width:42px;height:44px;flex:none;background:#ffffff9c;display:grid;place-items:center;border-radius:9px;color:#939bb5}.work-icon svg{width:25px;height:25px}.work-card h3{font-size:11px;font-weight:500;color:#738098;margin:0 0 6px;line-height:1.6}.work-card p{font-size:8px;line-height:1.6;color:#a7afbf;margin:0}.empty-state{grid-column:1/-1;text-align:center;padding:40px 15px;font-size:11px;color:#9ba6ba}.toast{position:fixed;left:50%;bottom:132px;transform:translate(-50%,12px);z-index:30;background:#fbfaf5ef;border:1px solid #fff;border-radius:20px;color:#8a849d;padding:11px 19px;box-shadow:0 7px 30px #58698421;font-size:10px;opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.noscript{position:fixed;inset:30%;padding:30px;background:#fff;z-index:50}
@media(max-height:760px) and (min-width:801px){.header{top:20px}.work-summary{top:99px;max-height:calc(100dvh - 195px);padding:15px;width:260px}.guide-preview{height:82px;margin:5px 0 12px}.summary-title{font-size:16px}.summary-desc{font-size:9px;margin-bottom:12px}.guide-features{margin-bottom:12px}.categories{bottom:23px}.category{padding:9px 10px;min-width:76px}.guide-tools{margin-top:12px;padding-top:10px}.scene-modes{top:95px}}
@media(max-width:800px){.header{inset:17px 15px auto}.brand{padding:9px 12px 9px 9px;border-radius:11px;gap:8px}.brand-mark{width:28px;height:28px;font-size:19px;border-radius:8px}.brand-copy strong{font-size:12px}.brand-copy small{font-size:6px;letter-spacing:.8px;margin-top:2px}.header-actions{gap:6px}.header-button{width:33px;height:33px;padding:0}.header-button>span,.works-count{display:none}.back-overview{height:33px;width:33px;padding:0;font-size:0}.back-overview:before{content:"↶";font-size:18px}.categories{left:15px;right:15px;bottom:21px;transform:none;max-width:none;padding:5px;border-radius:13px;gap:1px;justify-content:space-between}.category{min-width:0;flex:1;padding:8px 3px;gap:7px;border-radius:9px}.category>svg{width:21px;height:21px}.category-name{font-size:7px}.category.active:before{top:4px;right:5px;width:3px;height:3px}.stage-tools{right:16px;bottom:99px;gap:5px}.small-icon{width:27px;height:27px;border-radius:8px}.small-icon svg{width:12px;height:12px}.work-summary{left:15px;top:85px;width:217px;padding:14px;border-radius:14px;max-height:calc(100dvh - 181px);box-shadow:0 15px 45px #61719129}.guide-heading{font-size:7px}.guide-preview{height:70px;margin:5px 0 12px}.guide-object{width:56px;height:48px;border-radius:9px;box-shadow:6px 7px 0 #d7d9e885,10px 12px 15px #7e80a31a}.guide-object svg{width:28px;height:28px}.guide-preview:before{width:123px;height:32px;bottom:11px}.guide-preview:after{width:86px;height:21px;bottom:15px}.guide-floating-chip{left:calc(50% + 30px);width:17px;height:17px;font-size:11px}.summary-title,.summary-title.long{font-size:15px;margin-bottom:7px}.summary-desc{font-size:9px;line-height:1.8;margin-bottom:12px}.project-kicker{font-size:6px;margin-bottom:7px}.guide-features{gap:4px;margin-bottom:13px}.guide-features span{font-size:7px;padding:4px 5px}.primary-button,.secondary-button{height:34px;font-size:10px;padding:0 12px}.guide-tools{margin-top:12px;padding-top:11px;gap:5px}.guide-tools button{font-size:8px}.scene-modes{top:83px;right:15px;padding:3px;border-radius:9px}.scene-modes button{font-size:8px;padding:7px 9px}.district-label{font-size:8px;padding:6px 8px;gap:4px}.district-label .overview-zone-icon{font-size:14px;width:18px;height:18px}.project-label{font-size:8px;padding:6px 8px}.architecture-label{width:108px!important;padding:7px 8px}.architecture-label strong{font-size:9px}.architecture-label span{font-size:8px}.architecture-label .node-extra{display:none}.project-dialog,.catalog-dialog{width:calc(100% - 22px);max-height:calc(100dvh - 26px);border-radius:15px}.dialog-header{padding:20px 17px 14px}.dialog-header h2{font-size:17px}.dialog-actions{padding:0 17px 14px;gap:7px}.dialog-actions .primary-button,.dialog-actions .secondary-button{height:32px;min-width:0;font-size:9px}.dialog-tabs{padding-inline:17px}.dialog-tabs button{font-size:10px}.dialog-body{padding:20px 17px}.dialog-intro{font-size:10px}.feature-grid,.architecture-grid{grid-template-columns:1fr;gap:10px}.architecture-layer{min-height:0}.architecture-intro h3{font-size:13px}.architecture-intro>span{font-size:8px}.search{margin-inline:17px}.catalog-filters{padding-inline:17px}.search-status{padding-inline:17px}.catalog-grid{padding-inline:17px;grid-template-columns:1fr}.toast{bottom:111px;width:max-content;max-width:88vw}}
@media(max-width:380px){.category-name{font-size:6px}.work-summary{width:203px}.guide-preview{height:57px}.summary-title{font-size:14px}.guide-features{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.stage{background:radial-gradient(ellipse at 50% 24%,#e8edf5,#bfccdf)}.stage:after{background:radial-gradient(ellipse at 50% 50%,transparent 25%,#5e729923)}.district-label{background:#f3f5f0ed;color:#5d6780}.work-summary{background:#f7f8f4f2}.guide-preview{background:radial-gradient(ellipse,var(--guide-glow,#a99bc947),transparent 72%)}
/* 最后一层视觉打磨：柔和环境光、焦点脉冲和装置悬浮感。 */
.stage:before{content:"";position:absolute;inset:-15%;z-index:1;pointer-events:none;background:radial-gradient(circle at 38% 30%,#ffffff70 0 4%,transparent 22%),radial-gradient(circle at 72% 63%,#c5bdf329 0 5%,transparent 25%),radial-gradient(circle at 48% 100%,#869fd21d 0 5%,transparent 27%);mix-blend-mode:screen;animation:studio-light 18s ease-in-out infinite alternate}
@keyframes studio-light{from{transform:translate3d(-1.5%,1%,0) scale(1)}to{transform:translate3d(2%,-1%,0) scale(1.04)}}
.world canvas{filter:saturate(1.08) contrast(1.035)}
.category.active>svg{filter:drop-shadow(0 2px 5px #ffffff99)}
.category.active{box-shadow:0 3px 12px #77718b35,inset 0 -2px 0 #ffffff55}
.district-label.selected{animation:label-pulse 1.9s ease-in-out infinite}
@keyframes label-pulse{0%,100%{box-shadow:0 0 0 3px #ffffff70,0 5px 20px #78639225}50%{box-shadow:0 0 0 5px #ffffff8c,0 7px 28px #78639242}}
.guide-preview{box-shadow:inset 0 0 35px var(--guide-glow,#a99bc922)}
.guide-object{animation:guide-float 4.2s ease-in-out infinite}
.guide-floating-chip{animation:chip-float 3s ease-in-out infinite alternate}
@keyframes guide-float{0%,100%{translate:0 2px;rotate:-1deg}50%{translate:0 -5px;rotate:1deg}}
@keyframes chip-float{from{translate:0 2px;rotate:9deg}to{translate:2px -3px;rotate:16deg}}
@media(prefers-reduced-motion:reduce){.stage:before,.guide-object,.guide-floating-chip,.district-label.selected{animation:none}}
/* 个人身份层：轻量信息卡，不抢场景主视觉。 */
.profile-link{display:flex;align-items:center;gap:8px;min-height:40px;padding:5px 12px 5px 6px;border-radius:22px;background:#fafaf7e8;border:1px solid #ffffffef;box-shadow:0 5px 18px #5364820d;backdrop-filter:blur(15px);transition:.2s}
.profile-link:hover{background:#fff;box-shadow:0 5px 25px #53648223;transform:translateY(-1px)}
.profile-avatar{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#7687a7;color:#fff;font:9px Consolas,monospace;letter-spacing:-.5px}
.profile-copy{display:flex;flex-direction:column;gap:2px;line-height:1}.profile-copy b{font-size:10px;font-weight:600;color:#616b84}.profile-copy small{font:7px Consolas,monospace;color:#9da4b5;letter-spacing:.4px}.profile-arrow{font-size:13px;color:#8e91a5;margin-left:2px}
.brand-mark{font-family:Consolas,monospace;font-size:19px;font-weight:700;letter-spacing:-1px;background:#7484a2}
@media(max-width:800px){.profile-link{width:33px;height:33px;min-height:33px;padding:0;justify-content:center;border-radius:50%}.profile-copy,.profile-arrow{display:none}.profile-avatar{width:25px;height:25px;font-size:8px}.brand-mark{font-size:17px}.brand-copy strong{font-size:12px}.brand-copy small{font-size:6px}}

/* 个人身份与环境灯光 */
.brand{text-align:left;cursor:pointer;min-width:184px}.brand-copy strong{font-family:Consolas,monospace;font-size:16px;letter-spacing:.5px}.brand-copy small{font-size:6px;letter-spacing:1.1px}.brand-mark{position:relative;background:linear-gradient(145deg,#8d97bc,#657797);font:700 29px/1 Consolas,monospace;box-shadow:inset 0 1px 1px #ffffff45,0 3px 10px #66769225}.brand-pixel{position:absolute;right:4px;top:4px;width:5px;height:5px;border-radius:1.5px;background:#c5e1d8}.profile-chevron{width:13px;height:13px;color:#9fa6b9;margin-left:4px;transition:transform .3s}.brand[aria-expanded="true"] .profile-chevron{transform:rotate(180deg)}.profile-avatar{background:#74829e}.profile-avatar svg{width:17px;height:17px;color:#fff;stroke-width:1.5}.profile-link{padding-right:12px}.profile-copy small{font-size:7px}.personal-card{position:absolute;z-index:9;left:30px;top:116px;width:278px;padding:18px;border:1px solid #fff;border-radius:18px;background:#f7f9f5ed;box-shadow:0 20px 60px #59668122;backdrop-filter:blur(24px);animation:guide-in .35s cubic-bezier(.22,.8,.3,1);max-height:calc(100dvh - 220px);overflow:auto}.identity-art{position:relative;height:132px;display:grid;place-items:center;perspective:500px}.identity-tile{position:relative;width:83px;height:83px;border-radius:23px;display:grid;place-items:center;background:linear-gradient(135deg,#a6b2d2,#687eaa);font:700 68px/1 Consolas,monospace;color:#f6f8fd;box-shadow:8px 10px 0 #a9b8d570,13px 16px 24px #697d9e28,inset 0 2px 2px #ffffff8c;transform:rotateX(15deg) rotateY(-22deg);animation:identity-hover 6s ease-in-out infinite}.identity-tile>span{position:absolute;right:9px;top:10px;width:11px;height:11px;border-radius:3px;background:#c1dfd4}.identity-ring{position:absolute;bottom:13px;width:170px;height:42px;border:1px solid #b4bfd770;border-radius:50%;transform:rotate(-14deg)}.identity-spark{position:absolute;width:12px;height:12px;background:#c5d9da;left:44px;top:35px;transform:rotate(26deg);border-radius:3px;animation:chip-float 5s ease-in-out infinite alternate}.identity-spark.second{width:8px;height:8px;left:auto;right:38px;top:81px;background:#cebfdc;animation-delay:-2s}@keyframes identity-hover{0%,100%{translate:0 3px;rotate:-2deg}50%{translate:0 -4px;rotate:1deg}}.personal-card h1{font:600 24px/1.5 Consolas,monospace;margin:10px 0 0;color:#556681;letter-spacing:-.5px}.personal-card h1>span{color:#b4c3d7;font-weight:400}.personal-handle{font:9px Consolas,monospace;color:#9ea8bb;margin:3px 0 18px}.personal-intro{font-size:10px;line-height:2;color:#7e8b9f;margin:0 0 17px}.personal-fields{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px}.personal-fields span{font-size:8px;padding:5px 7px;color:#8c99ae;background:#e8edf370;border:1px solid #dce3ed80;border-radius:5px}.personal-github{background:#788bac}.personal-github svg{width:16px;height:16px;flex:none}.personal-github b{font-size:10px;font-weight:400}.personal-explore{display:flex;justify-content:space-between;width:100%;padding:13px 5px 1px;font-size:9px;color:#929bb0}.personal-explore:hover{color:#5f7398}
/* 以实体光照为主，避免屏幕光斑盖住作品。 */
.stage:before{opacity:.18;mix-blend-mode:soft-light}.world canvas{filter:saturate(1.10) contrast(1.02)}.stage{transition:background .85s}.small-icon[aria-pressed="true"]{background:#dddfee;color:#727b9e}.work-summary,.personal-card,.header-button,.brand,.profile-link,.back-overview,.categories{transition:background .65s,border-color .65s,box-shadow .3s}.guide-object,.identity-tile{will-change:transform}.primary-button{position:relative;overflow:hidden}.primary-button:after{content:"";position:absolute;inset:0;transform:translateX(-140%) skewX(-18deg);background:linear-gradient(90deg,transparent,#ffffff24,transparent);width:55%;pointer-events:none}.primary-button:hover:after{transform:translateX(260%) skewX(-18deg);transition:transform .7s}.motion-paused .stage:before,.motion-paused .guide-object,.motion-paused .guide-floating-chip,.motion-paused .district-label.selected,.motion-paused .identity-tile,.motion-paused .identity-spark{animation-play-state:paused}
body.evening{background:#293750}.evening .stage{background:radial-gradient(ellipse at 45% 25%,#4a5677,#29364d)}.evening .stage:before{opacity:.07}.evening .stage:after{background:radial-gradient(ellipse at 50% 48%,transparent 45%,#1b223b38)}.evening .brand,.evening .profile-link,.evening .header-button,.evening .back-overview,.evening .categories,.evening .work-summary,.evening .personal-card,.evening .scene-modes{background:#e9edf3e8;border-color:#f9fcff83;box-shadow:0 10px 40px #131e391e}.evening .district-label,.evening .architecture-label{background:#e9edf4ea;border-color:#f7faffb0}.evening .small-icon{background:#d5dfedc9;border-color:#e1e9f291}.evening .category.active,.evening .primary-button{background:#7a84aa}.evening .guide-preview{background:radial-gradient(ellipse,#bac5df44,transparent 70%)}.evening .identity-art{filter:saturate(.85)}
@media(max-height:760px) and (min-width:801px){.personal-card{top:99px;width:260px;padding:15px;max-height:calc(100dvh - 195px)}.identity-art{height:112px}.personal-handle{margin-bottom:13px}.personal-fields{margin-bottom:16px}}
@media(max-width:800px){.brand{min-width:150px;padding-right:11px}.brand-copy strong{font-size:13px}.brand-copy small{font-size:5px;letter-spacing:.65px}.brand-mark{font-size:24px}.profile-chevron{width:10px;height:10px;margin-left:0}.brand-pixel{width:4px;height:4px}.profile-avatar svg{width:15px;height:15px}.profile-link{padding:0}.personal-card{left:15px;top:85px;width:230px;padding:15px;max-height:calc(100dvh - 177px)}.identity-art{height:113px}.identity-tile{width:70px;height:70px;border-radius:18px;font-size:58px}.identity-tile>span{width:9px;height:9px;top:8px;right:7px}.personal-card h1{font-size:23px}.personal-intro{font-size:10px}.personal-handle{font-size:8px;margin-bottom:15px}.personal-fields{margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.identity-tile,.identity-spark{animation:none}.guide-object,.identity-tile{will-change:auto}}

/* 场景由镜头移动；焦点恢复不能滚动场景本身。 */
.stage{overflow:clip}

/* 点击地面跑去敲代码的小人，提示只采用图形。 */
.runner-marker{position:absolute;z-index:3;pointer-events:none;transform:translate(-50%,-100%);width:25px;height:25px;border:1px solid #ffffffe0;border-radius:9px;background:#f7f8f2e3;box-shadow:0 3px 15px #45577524;color:#7b86a9;display:grid;place-items:center}.runner-marker>svg{width:14px;height:14px;stroke-width:1.35}.runner-marker:after{content:"";position:absolute;left:11px;bottom:-5px;width:1px;height:4px;background:#ffffffce}.runner-dot{position:absolute;right:-2px;top:-2px;width:6px;height:6px;border:1px solid #fff;border-radius:50%;background:#c8cedd}.runner-marker[data-state="running"] .runner-dot{background:#d9bc91}.runner-marker[data-state="coding"]{color:#b4906d;box-shadow:0 0 0 3px #eddab936}.runner-marker[data-state="coding"] .runner-dot{background:#d9aa73}.runner-marker[data-state="complete"]{color:#73a991;border-color:#a8d5c0}.runner-marker[data-state="complete"] .runner-dot{background:#8fc4ae}.evening .runner-marker{background:#dfe9f2e8}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.runner-marker{width:21px;height:21px;border-radius:7px}.runner-marker>svg{width:12px;height:12px}.runner-marker:after{left:9px}}
/* System-specific local stories and independent infrastructure access. */
.story{margin:14px 0 17px;border:1px solid #dce4ed;border-radius:12px;background:#edf2f7;overflow:hidden;color:#53647b}
.story-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;font-size:11px;font-weight:600}
.story-heading small{font-size:9px;font-weight:400;white-space:nowrap;color:#677990}
.story-canvas{display:block;width:100%;height:auto;aspect-ratio:32/15}
.story-steps{display:flex;list-style:none;margin:0;padding:10px 7px 3px;gap:4px;counter-reset:story}
.story-steps li{flex:1;min-width:0;text-align:center;font-size:9px;line-height:1.7;color:#738197;counter-increment:story}
.story-steps li:before{content:counter(story);display:block;margin:0 auto 5px;width:18px;line-height:18px;border-radius:50%;background:#dce4ed;color:#687c93;font-family:Consolas,monospace}
.story-steps li.current{color:#405670;font-weight:600}.story-steps li.current:before,.story-steps li.done:before{background:var(--story-color);color:white}
.story-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 8px 8px;font-size:10px;min-height:35px}
.story-status{color:#5a7088}.story-footer button{border:1px solid #ccd6e3;background:#fff9;border-radius:7px;min-height:30px;min-width:58px;padding:4px 7px;font-size:10px;color:#50657f}
.story-footer button:active{background:#dae4ef}
.infra-picker{position:absolute;right:28px;top:110px;z-index:7;width:256px;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px;border:1px solid #fff;border-radius:14px;background:#f2f6f4ed;box-shadow:0 10px 35px #344b6824;max-height:calc(100dvh - 260px);overflow:auto}
.infra-picker button{display:flex;align-items:center;gap:7px;text-align:left;min-height:43px;padding:7px;border:1px solid #d4e0e8;border-radius:8px;background:#fff9;color:#516981;font-size:10px}
.infra-picker button b{font:10px Consolas,monospace;color:#558d9b}.infra-picker button[aria-pressed=true]{border-color:#6b9cab;background:#dcecf1}.infra-picker button:hover{background:#e5f0f3}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible{outline:3px solid #607da6!important;outline-offset:3px}
.close-button,.guide-close{min-width:32px;min-height:32px;flex:none}.dialog-body{scrollbar-gutter:stable}
@media(min-width:801px){.work-summary{width:300px}.summary-desc{font-size:11px;color:#697b92}.summary-title{color:#4c607b}.work-card p{color:#72839a}.work-card h3{color:#50647e}.dialog-intro,.feature-card{color:#60758c}}
@media(max-width:800px){.infra-picker{top:80px;left:15px;right:15px;width:auto;max-height:65px;display:flex;overflow-x:auto;padding:6px;gap:6px;scrollbar-width:thin}.infra-picker button{flex:none;min-height:36px;white-space:nowrap}.showcase:has(.infra-picker:not([hidden])) .work-summary{top:150px;max-height:calc(100dvh - 250px)}.story{margin:8px 0 12px}.story-heading{font-size:10px;padding:8px}.story-heading small{font-size:8px}.story-steps{padding:7px 4px 2px}.story-steps li{font-size:8px}.story-footer{font-size:9px}.story-canvas{max-height:105px}.small-icon{width:36px;height:36px}.small-icon svg{width:15px;height:15px}.guide-close,.close-button{min-width:36px;min-height:36px}.stage-tools{gap:6px}.summary-desc{color:#687b92}.category{min-height:49px}.header-button{width:36px;height:36px}.back-overview{width:36px;height:36px}.work-summary{width:224px}.story-footer button{min-height:34px}}
@media(max-height:600px){.story-canvas{max-height:80px}.work-summary{top:82px;max-height:calc(100dvh - 168px)}.infra-picker{top:82px;max-height:calc(100dvh - 185px)}.header{top:12px}.categories{bottom:12px}}
@media(prefers-reduced-motion:reduce){.story *{transition:none!important;animation:none!important}}
.story-disclosure{margin:0 0 12px}.story-disclosure>summary{cursor:pointer;display:flex;justify-content:space-between;padding:8px 0;color:#536d89;font-size:10px}.story-disclosure[open]>summary span{transform:rotate(45deg)}.story-disclosure .story{margin:4px 0 10px}
@media(max-height:650px) and (min-width:801px){.showcase:not(.overview) #world{top:110px;bottom:96px}.architecture-label{width:98px!important;padding:5px 7px}.architecture-label strong{font-size:9px}.architecture-label span{font-size:8px}.architecture-label .node-extra{display:none}.scene-modes{top:76px}.showcase:not(.overview) .stage-tools{left:30px;right:auto;top:82px;bottom:auto}}
@media(min-width:801px) and (min-height:651px){.story-disclosure>summary{display:none}}
@media(max-width:800px){
 .work-summary,.showcase:has(.infra-picker:not([hidden])) .work-summary{left:15px;right:15px;top:auto;bottom:151px;width:auto;max-height:40dvh;padding:12px 14px;overscroll-behavior:contain}
 .summary-title,.summary-title.long{font-size:15px;margin:5px 0}.summary-desc{font-size:10px;line-height:1.7;margin-bottom:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .project-kicker,.guide-features{display:none}.guide-heading{min-height:28px}.guide-heading .guide-close{min-height:30px;min-width:30px}.story-disclosure{margin:0 0 7px}
 .guide-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.guide-actions .primary-button,.guide-actions .secondary-button{min-width:0;font-size:10px}.guide-tools{margin-top:8px;padding-top:8px}.guide-tools button{min-height:28px;font-size:10px}
 .story-disclosure[open] .story-canvas{max-height:none}.story-disclosure[open] .story-steps li{font-size:10px}.access-note{margin:6px 0 0}
}
@media(max-height:650px) and (min-width:801px){
 .work-summary{left:15px;top:82px;bottom:92px;width:280px;max-height:calc(100dvh - 174px);padding:10px 13px}.summary-title,.summary-title.long{font-size:14px;margin:3px 0}.summary-desc{font-size:9px;line-height:1.6;margin:3px 0 5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .guide-features,.project-kicker{display:none}.guide-heading{height:28px}.guide-close{min-height:28px;min-width:28px}.story-disclosure{margin:0 0 5px}.story-disclosure>summary{padding:5px 0}
 .guide-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.guide-actions>*{min-width:0;height:30px}.guide-tools{margin-top:6px;padding-top:6px}.guide-tools button{min-height:24px}.access-note{margin:4px 0 0}
 .stage-tools{bottom:100px;right:20px}.infra-picker{max-height:calc(100dvh - 240px)}
}
/* 星图标签、全屏三维空间背景层与立体玻璃拟态增强 */
.spatial-backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:#e6effa;transition:background .85s ease}
.spatial-backdrop canvas{display:block;width:100%;height:100%}
body.evening .spatial-backdrop{background:#07111f}
.site-shell{z-index:1}
.stage{background:radial-gradient(ellipse at 50% 42%,rgba(240,246,254,.12) 0%,rgba(202,219,240,.22) 66%,rgba(176,199,228,.34) 100%)}
.stage:after{background:radial-gradient(ellipse at 50% 50%,transparent 36%,rgba(78,105,148,.12) 100%)}
.evening .stage{background:radial-gradient(ellipse at 50% 38%,rgba(34,56,94,.14) 0%,rgba(14,26,48,.28) 66%,rgba(6,13,26,.46) 100%)}
.evening .stage:after{background:radial-gradient(ellipse at 50% 48%,transparent 42%,rgba(5,11,24,.36) 100%)}
.brand,.header-button,.back-overview,.profile-link,.categories,.scene-modes,.work-summary,.personal-card,.infra-picker{background:rgba(250,252,255,.84);border:1px solid rgba(255,255,255,.92);box-shadow:0 14px 38px rgba(45,68,104,.11),0 2px 6px rgba(45,68,104,.06),inset 0 1px 0 rgba(255,255,255,.95);backdrop-filter:blur(22px) saturate(1.18)}
.work-summary,.personal-card{box-shadow:0 22px 58px rgba(38,60,96,.15),0 4px 12px rgba(38,60,96,.06),inset 0 1px 0 rgba(255,255,255,.96)}
.district-label,.architecture-label{background:rgba(248,251,255,.88);border:1px solid rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(46,68,104,.14),inset 0 1px 0 rgba(255,255,255,.95);backdrop-filter:blur(12px);transition:transform .24s cubic-bezier(.2,.8,.2,1),background .2s,box-shadow .24s,border-color .24s}
.architecture-label{border-top:2.5px solid var(--node-color)}
.district-label:hover{background:#fff;transform:translate(-50%,calc(-100% - 3px)) scale(1.03);box-shadow:0 12px 28px rgba(46,68,104,.22),0 0 0 1px var(--district)}
.architecture-label:hover,.architecture-label.active{background:#fff;transform:translate(-50%,calc(-100% - 3px)) scale(1.03);box-shadow:0 12px 28px rgba(46,68,104,.24),0 0 0 1.5px var(--node-color)}
.district-label.selected{box-shadow:0 0 0 3px rgba(255,255,255,.78),0 10px 28px rgba(68,92,138,.28)}
.evening .brand,.evening .profile-link,.evening .header-button,.evening .back-overview,.evening .categories,.evening .work-summary,.evening .personal-card,.evening .scene-modes,.evening .infra-picker{background:rgba(234,241,252,.86);border-color:rgba(255,255,255,.72);box-shadow:0 16px 44px rgba(4,10,24,.38),inset 0 1px 0 rgba(255,255,255,.85)}
.evening .district-label,.evening .architecture-label{background:rgba(236,243,253,.90);border-color:rgba(255,255,255,.78);box-shadow:0 10px 26px rgba(4,10,24,.36)}
.evening .architecture-label{border-top:2.5px solid var(--node-color)}
.evening .district-label.selected{box-shadow:0 0 0 3px #9ed8ff88,0 10px 30px #09152b88}
.header{inset:20px 26px auto;align-items:center}
.brand{padding:7px 14px 7px 9px;min-height:40px;border-radius:20px;gap:9px}
.brand-mark{width:28px;height:28px;border-radius:9px;font-size:21px}
.brand-copy strong{font-size:13.5px}
.brand-copy small{font-size:6px;margin-top:2px}
.runner-roster{position:absolute;top:20px;left:47%;transform:translateX(-50%);bottom:auto;z-index:8;display:flex;align-items:center;padding:5px 8px;border-radius:99px;background:rgba(249,251,253,.92);border:1px solid #d2e0eb;box-shadow:0 10px 28px rgba(27,52,75,.10),inset 0 1px 0 #fff;backdrop-filter:blur(18px);pointer-events:auto;max-width:calc(100vw - 560px)}
.runner-squad-bar{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
.runner-routine-pill{height:24px;padding:0 8px;border-radius:99px;font-size:8.5px;font-weight:700;color:#1b344b;background:linear-gradient(135deg,#e8f3fb,#eef6f8);border:1px solid #c5dbe9;display:inline-flex;align-items:center;gap:3px;white-space:nowrap;transition:background .16s,border-color .16s,transform .16s}
.runner-routine-pill:hover{background:#fff;border-color:#94bcd8;transform:translateY(-1px)}
.runner-routine-pill[aria-expanded="true"]{background:var(--routine-color,#176ca3);color:#fff;border-color:transparent}
.runner-time-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:2px 0 5px;border-bottom:1px dashed #dce7f0}
.runner-chat-topics{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:2px 0 4px;border-bottom:1px dashed #dce7f0}
.runner-topic-pill{height:21px;padding:0 7px;border-radius:99px;font-size:8.5px;font-weight:600;color:#2c5678;background:#eef5fb;border:1px solid #cfe0ec;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;transition:transform .15s,background .15s,border-color .15s,color .15s}
.runner-topic-pill:hover{transform:translateY(-1px);background:#e1effa;border-color:#9bc0db;color:#144b75}
.runner-topic-pill.fresh-btn{background:linear-gradient(135deg,#e8f4f8,#edf2fb);color:#176ca3;border-color:#b7d4e8;margin-left:auto}
.runner-time-btn{height:23px;padding:0 6px;border-radius:6px;font-size:8.5px;font-weight:600;color:#3c556b;background:#f2f7fb;border:1px solid #d5e3ed;display:inline-flex;align-items:center;justify-content:center;gap:2px;white-space:nowrap;transition:transform .16s,background .16s,color .16s,box-shadow .16s}
.runner-time-btn:hover{transform:translateY(-1px);background:#fff;color:#175b8a;border-color:#a5c4da;box-shadow:0 3px 9px rgba(27,52,75,.10)}
.runner-time-btn.active{background:var(--routine-color,var(--char-accent,#176ca3));color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(23,108,163,.24)}
.runner-time-btn.auto-btn[aria-pressed="true"]{background:#18847b;color:#fff;border-color:transparent}
.runner-roster-title{font-size:9px;font-weight:600;color:#3c556b;padding:0 3px 0 2px;white-space:nowrap;display:flex;align-items:center;gap:4px}
.runner-roster-title i{width:6px;height:6px;border-radius:50%;background:var(--char-accent,#18847b);display:inline-block}
.runner-chip{width:23px;height:23px;border-radius:50%;font-size:9px;font-weight:600;color:#3c556b;background:#f0f6fb;border:1px solid #d4e2ec;display:grid;place-items:center;transition:transform .18s,background .18s,color .18s,box-shadow .18s}
.runner-chip:hover{transform:translateY(-1px);background:#fff;color:#175b8a;border-color:#9bc0db}
.runner-chip.active{background:var(--char-color,#176ca3);color:#fff;border-color:#fff;box-shadow:0 3px 10px rgba(23,108,163,.26)}
.runner-roster-sep{width:1px;height:15px;background:#cfe0ec;margin:0 2px}
.runner-action-btn{height:24px;padding:0 8px;border-radius:99px;font-size:8.5px;font-weight:600;color:#235175;background:#eef5fb;border:1px solid #cfe0ec;display:inline-flex;align-items:center;gap:3px;white-space:nowrap;transition:transform .18s,background .18s,color .18s,box-shadow .18s}
.runner-action-btn:hover{transform:translateY(-1px);background:#fff;color:#144b75;border-color:#9bc0db;box-shadow:0 4px 12px rgba(27,52,75,.12)}
.runner-action-btn.egg-btn{background:linear-gradient(135deg,#eef5fb,#e6f3f3);color:#156478;border-color:#b6d5de}
.runner-action-btn.egg-btn[aria-expanded="true"]{background:linear-gradient(135deg,#2570a4,#1b5f8e);color:#fff;border-color:transparent}
.runner-egg-menu{position:absolute;right:0;top:calc(100% + 8px);bottom:auto;left:auto;width:296px;padding:9px 10px;border-radius:15px;background:rgba(255,255,255,.97);border:1px solid #cbdce8;box-shadow:0 18px 46px rgba(27,52,75,.18),0 3px 10px rgba(27,52,75,.08),inset 0 1px 0 #fff;backdrop-filter:blur(22px) saturate(1.2);display:grid;gap:4px;z-index:16;animation:rsbPop .2s cubic-bezier(.2,.8,.2,1)}
.runner-egg-menu[hidden]{display:none!important}
.runner-egg-head{display:flex;justify-content:space-between;align-items:center;padding:1px 4px 4px;font-size:9px;font-weight:700;color:#1b344b}
.runner-egg-subhead{padding-top:3px}
.runner-egg-head small{font-weight:500;color:#5c7286;font-size:8px}
.runner-egg-item{display:flex;align-items:center;gap:8px;width:100%;padding:5px 7px;border-radius:9px;background:#f4f8fc;border:1px solid #dce7f0;text-align:left;transition:background .16s,transform .16s,box-shadow .16s}
.runner-egg-item:hover{background:#eaf3fa;border-color:#adcde0;transform:translateX(2px);box-shadow:0 4px 12px rgba(27,52,75,.08)}
.runner-egg-icon{width:23px;height:23px;border-radius:7px;background:#fff;border:1px solid #d5e3ed;display:grid;place-items:center;font-size:11.5px;flex:none;box-shadow:0 2px 6px rgba(27,52,75,.06)}
.runner-egg-text{display:flex;flex-direction:column;min-width:0}
.runner-egg-text strong{font-size:9.5px;color:#1b344b;font-weight:600;line-height:1.25}
.runner-egg-text span{font-size:8px;color:#5c7286;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.runner-speech-bubble{position:absolute;z-index:9;width:min(350px,calc(100vw - 28px));padding:11px 13px 10px;border-radius:16px;background:rgba(255,255,255,.95);border:1px solid #cbdce8;border-top:3px solid var(--char-accent,#176ca3);box-shadow:0 18px 46px rgba(27,52,75,.18),0 3px 10px rgba(27,52,75,.08),inset 0 1px 0 #fff;backdrop-filter:blur(22px) saturate(1.2);transform:translate(-50%,calc(-100% - 14px));pointer-events:auto;transition:left .09s linear,top .09s linear;animation:rsbPop .22s cubic-bezier(.2,.8,.2,1)}
.runner-speech-bubble[hidden]{display:none!important}
.rsb-tail{position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:rgba(255,255,255,.95);border-right:1px solid #cbdce8;border-bottom:1px solid #cbdce8;transform:translateX(-50%) rotate(45deg);pointer-events:none}
.rsb-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}
.rsb-speaker{display:flex;align-items:center;gap:6px;min-width:0}
.rsb-avatar{width:20px;height:20px;border-radius:6px;background:var(--char-accent,#176ca3);color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;flex:none;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.rsb-speaker strong{font-size:11px;color:#1b344b;font-weight:700;white-space:nowrap}
.rsb-speaker small{font-size:9px;color:#5c7286;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rsb-badge{font-size:8.5px;font-weight:600;padding:2px 6px;border-radius:99px;background:#e8f2fa;color:#176ca3;border:1px solid #cde0eb;white-space:nowrap}
.rsb-close{width:20px;height:20px;min-width:20px;min-height:20px;border-radius:6px;font-size:12px;color:#5c7286;background:transparent;display:grid;place-items:center;padding:0;line-height:1}
.rsb-close:hover{background:#eaf3fa;color:#1b344b}
.rsb-subject{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 8px;margin-bottom:6px;border-radius:8px;background:#eef5fb;border:1px solid #d5e3ed;font-size:9.5px;font-weight:600;color:#224967}
.rsb-subject span{color:var(--char-accent,#176ca3);font-weight:700}
.rsb-body{font-size:10.5px;line-height:1.62;color:#2c465e;min-height:34px;max-height:132px;overflow-y:auto;scrollbar-width:thin;cursor:pointer;word-break:break-word}
.rsb-body b{color:#1b344b;font-weight:700}
.rsb-chat-thread{display:flex;flex-direction:column;gap:5px;padding:2px 0}
.rsb-chat-line{display:flex;align-items:flex-start;gap:6px;padding:5px 7px;border-radius:8px;background:#f4f8fc;border:1px solid #dce7f0;font-size:10px;line-height:1.5;color:#2c465e}
.rsb-chat-tag{flex:none;padding:1px 6px;border-radius:5px;background:var(--speaker-color,#176ca3);color:#fff;font-size:8.5px;font-weight:700;line-height:1.4;margin-top:1px}
.rsb-cursor{display:inline-block;width:5px;height:11px;margin-left:2px;vertical-align:-1px;background:var(--char-accent,#176ca3);animation:rsbBlink .8s infinite}
.rsb-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;padding-top:7px;border-top:1px solid #dce7f0}
.rsb-tab{height:22px;padding:0 7px;border-radius:6px;font-size:9px;font-weight:600;color:#355e7d;background:#f0f6fb;border:1px solid #cfe0ec;display:inline-flex;align-items:center;gap:3px;transition:background .15s,color .15s,transform .15s}
.rsb-tab:hover{background:#e3eff8;color:#144f7a;border-color:#a5c4da;transform:translateY(-1px)}
.rsb-tab.active{background:linear-gradient(135deg,#2570a4,#1b5f8e);color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(23,108,163,.24)}
.station-speech-layer{position:absolute;inset:0;pointer-events:none;z-index:7;overflow:hidden}
.station-mini-bubble{position:absolute;max-width:225px;padding:5px 9px;border-radius:11px;background:rgba(255,255,255,.93);border:1px solid #cbdce8;border-left:3px solid var(--st-color,#176ca3);box-shadow:0 8px 22px rgba(27,52,75,.13);backdrop-filter:blur(14px);font-size:9.5px;line-height:1.45;color:#2c465e;transform:translate(-50%,calc(-100% - 8px));pointer-events:auto;cursor:pointer;transition:left .1s linear,top .1s linear,transform .18s;animation:rsbPop .2s ease}
.station-mini-bubble:hover{background:#fff;transform:translate(-50%,calc(-100% - 10px)) scale(1.03)}
.station-mini-bubble strong{color:#1b344b;font-weight:700;margin-right:3px}
@keyframes rsbPop{from{opacity:0;transform:translate(-50%,calc(-100% - 6px)) scale(.94)}to{opacity:1;transform:translate(-50%,calc(-100% - 14px)) scale(1)}}
@keyframes rsbBlink{0%,100%{opacity:1}50%{opacity:.15}}
/* 样板间导览台 (#workSummary) 与主页视觉对齐 */
.work-summary{top:78px;left:26px;width:302px;max-height:calc(100dvh - 176px);background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(243,248,253,.93));border:1px solid #cbdce8;border-radius:18px;box-shadow:0 22px 58px rgba(27,52,75,.14),0 4px 12px rgba(27,52,75,.06),inset 0 1px 0 #fff;padding:14px 15px}
.guide-heading{color:#3c607b;font-size:8.5px;font-weight:700;letter-spacing:.8px;padding-bottom:7px;border-bottom:1px solid #e1ebf3;margin-bottom:8px}
.guide-heading>span{display:inline-flex;align-items:center;gap:6px}
.guide-heading>span::before{content:"";width:7px;height:7px;border-radius:50%;background:#18847b;box-shadow:0 0 8px #18847b55}
.showroom-badge-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}
.showroom-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:99px;background:#eef5fa;border:1px solid #cfe0ec;color:#1d5c87;font-size:8.5px;font-weight:600}
.showroom-pill i{width:5px;height:5px;border-radius:50%;background:#18847b;display:inline-block}
.showroom-port{font:600 8.5px Consolas,monospace;color:#526c82;background:#f3f7fb;border:1px solid #d8e4ee;padding:2px 6px;border-radius:5px}
.summary-title{color:#1b344b;font-size:16px;font-weight:700;letter-spacing:-.2px;margin:0 0 5px}
.summary-desc{color:#445f77;font-size:10px;line-height:1.68;margin:0 0 8px}
.story{margin:8px 0 10px;border:1px solid #cbdce8;border-radius:12px;background:#f4f8fc;box-shadow:inset 0 1px 0 #fff}
.story-heading{padding:7px 10px;font-size:10px;color:#1b344b;background:linear-gradient(90deg,#eef5fb,#f6f9fd);border-bottom:1px solid #dce7f0}
.story-heading small{color:#176ca3;font-weight:600}
.story-steps{padding:7px 6px 4px}
.story-steps li{cursor:pointer;padding:3px 2px;border-radius:6px;transition:background .15s,color .15s}
.story-steps li:hover{background:#e6f0f9;color:#175b8a}
.story-steps li.current{color:#1b344b;font-weight:700}
.story-footer{padding:4px 8px 8px;border-top:1px dashed #dce7f0}
.story-status{color:#2c5678;font-weight:600;font-size:9.5px}
.story-footer button{background:#fff;border:1px solid #bdd3e4;color:#1d5c87;font-weight:600}
.story-footer button:hover{background:#ebf4fa;border-color:#8bb4d1}
.showroom-arch-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:8px}
.showroom-arch-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 6px;border-radius:8px;background:#f3f7fb;border:1px solid #d5e3ed;text-align:left;transition:background .16s,border-color .16s,transform .16s}
.showroom-arch-chip:hover{background:#e7f2fa;border-color:#9bc0db;transform:translateY(-1px)}
.showroom-arch-chip small{font:700 7.5px Consolas,monospace;color:#176ca3;letter-spacing:.4px}
.showroom-arch-chip b{font-size:9px;color:#1b344b;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.showroom-guide-bar{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.showroom-guide-bar button{height:27px;border-radius:7px;font-size:9.5px;font-weight:600;color:#1d5c87;background:linear-gradient(135deg,#eef6fc,#e6f2f9);border:1px solid #bdd5e7;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .16s,transform .16s,box-shadow .16s}
.showroom-guide-bar button:hover{background:#dfeffa;border-color:#8eb8d6;transform:translateY(-1px);box-shadow:0 3px 10px rgba(23,108,163,.12)}
.primary-button{background:linear-gradient(135deg,#2570a4,#1b5f8e);border:1px solid #1c6191;color:#fff;font-weight:600;box-shadow:inset 0 1px 0 #ffffff33,0 6px 16px rgba(30,91,130,.22)}
.primary-button:hover{background:linear-gradient(135deg,#1d6294,#154f78);border-color:#16527c}
.secondary-button{border:1px solid #b8d0e2;color:#235175;background:#ffffffcc;font-weight:600}
.secondary-button:hover{background:#eff6fc;border-color:#88b2cf;color:#12466e}
.category.active{background:linear-gradient(135deg,#2570a4,#1b5f8e);color:#fff;box-shadow:0 4px 14px rgba(27,95,142,.28),inset 0 1px 0 rgba(255,255,255,.35)}
.scene-modes button.active{background:linear-gradient(135deg,#2570a4,#1b5f8e);color:#fff}
.project-dialog,.catalog-dialog{background:linear-gradient(165deg,#ffffff,#f4f8fc);border:1px solid #cbdce8;box-shadow:0 30px 90px rgba(23,52,78,.22)}
.dialog-header h2{color:#1b344b;font-weight:700}
.dialog-header small{color:#176ca3;font-weight:600}
.dialog-tabs button.active{color:#176ca3;font-weight:600}
.dialog-tabs button.active:after{background:#176ca3}
.feature-card{background:#f3f7fb;border-color:#d2e0eb;color:#3c556b}
.feature-card b{color:#1b344b;font-weight:600}
.architecture-layer{background:linear-gradient(145deg,#fff,#f3f8fc);border-color:#cbdce8}
.catalog-filters button.active{background:linear-gradient(135deg,#2570a4,#1b5f8e);border-color:#1b5f8e;color:#fff}
.work-card{background:#f3f8fc;border-color:#d2e0eb}
.work-card:hover{background:#fff;border-color:#88b2cf;box-shadow:0 8px 24px rgba(27,52,75,.10)}
.work-card h3{color:#1b344b;font-weight:600}
.evening .runner-roster,.evening .runner-egg-menu,.evening .runner-speech-bubble,.evening .station-mini-bubble,.evening .work-summary,.evening .tech-guide-dock,.evening .arch-inspector-bar,.evening .overview-hover-card{background:rgba(235,243,253,.93);border-color:rgba(255,255,255,.78)}
@media(max-width:1180px){.runner-roster{top:auto;bottom:98px;right:20px;left:auto;transform:none;max-width:calc(100vw - 40px)}.runner-egg-menu{top:auto;bottom:calc(100% + 8px);right:0;left:auto}.runner-roster-title{display:none}.runner-chip{width:21px;height:21px;font-size:8px}.runner-action-btn,.runner-routine-pill{height:21px;padding:0 6px;font-size:8px}.runner-speech-bubble{width:min(312px,calc(100vw - 24px));padding:9px 11px}.rsb-body{font-size:10px;max-height:96px}}

/* === 全栈技术能力导览坞 (#techGuideDock)、代表作巡礼 (#tourHudBar)、3D 悬停遥测与架构深潜增强 === */
.stage-tools{align-items:center}
.stage-tour-pill{display:inline-flex;align-items:center;gap:5px;height:33px;padding:0 11px;border-radius:10px;background:rgba(240,250,248,.92);border:1px solid #a8d8d0;color:#14635c;font-size:9.5px;font-weight:700;box-shadow:0 5px 16px rgba(24,132,123,.12);backdrop-filter:blur(12px);transition:background .16s,border-color .16s,transform .16s}
.stage-tour-pill svg{width:12px;height:12px;fill:currentColor;stroke:none}
.stage-tour-pill:hover{background:#fff;border-color:#18847b;color:#0f524c;transform:translateY(-1px)}
.stage-tour-pill.active{background:linear-gradient(135deg,#18847b,#176ca3);border-color:transparent;color:#fff;box-shadow:0 6px 20px rgba(24,132,123,.32)}
.header-button.showroom-cta{background:linear-gradient(135deg,#eef6fd,#e3f0fb);border-color:#9fc5e0;color:#175885;font-weight:600}
.header-button.showroom-cta:hover{background:#fff;border-color:#2570a4;color:#12466e}
.header-button.showroom-cta .works-count{color:#176ca3;font-weight:700;border-left-color:#b5d0e4}
.category-count{display:inline-grid;place-items:center;position:absolute;top:5px;right:6px;min-width:16px;height:14px;padding:0 4px;border-radius:99px;font:700 8px Consolas,monospace;background:#e6eff7;color:#3b6182;border:1px solid #d1e0ec}
.category.active .category-count{background:rgba(255,255,255,.24);color:#fff;border-color:rgba(255,255,255,.35)}
.category.active:before{display:none}
.district-label:hover small,.district-label.selected small{display:block;font-size:7.5px;color:#58718a;max-width:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}

/* 左侧全栈技术能力与作品选型导览坞 */
.tech-guide-dock{position:absolute;z-index:9;left:26px;top:78px;width:292px;max-height:calc(100dvh - 176px);overflow-y:auto;scrollbar-width:thin;background:linear-gradient(160deg,rgba(255,255,255,.94),rgba(242,248,254,.91));border:1px solid #cbdce8;border-radius:16px;box-shadow:0 18px 48px rgba(27,52,75,.13),0 3px 10px rgba(27,52,75,.05),inset 0 1px 0 #fff;backdrop-filter:blur(22px) saturate(1.2);padding:11px 12px;display:flex;flex-direction:column;gap:8px;animation:guide-in .35s cubic-bezier(.22,.8,.3,1)}
.tech-guide-dock.collapsed{width:auto;padding:0;background:transparent;border:0;box-shadow:none;backdrop-filter:none;overflow:visible}
.tgd-collapsed-bar{display:inline-flex;align-items:center;gap:6px}
.tgd-expand-pill,.tgd-collapsed-tour{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:99px;background:rgba(255,255,255,.94);border:1px solid #bdd3e4;box-shadow:0 10px 28px rgba(27,52,75,.13),inset 0 1px 0 #fff;color:#1b344b;font-size:10px;font-weight:600;backdrop-filter:blur(18px);transition:transform .16s,box-shadow .16s,background .16s}
.tgd-expand-pill:hover,.tgd-collapsed-tour:hover{transform:translateY(-1px);background:#fff;box-shadow:0 14px 32px rgba(27,52,75,.20)}
.tgd-expand-pill small{color:#176ca3;font-weight:600;font-size:9px}
.tgd-collapsed-tour{background:linear-gradient(135deg,#eef9f7,#e6f3fb);border-color:#a5d6ce;color:#14635c}
.tgd-collapsed-tour.active{background:linear-gradient(135deg,#18847b,#176ca3);border-color:transparent;color:#fff}
.tgd-pulse{width:7px;height:7px;border-radius:50%;background:#18847b;box-shadow:0 0 0 3px rgba(24,132,123,.2);display:inline-block;flex:none}
.tgd-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-bottom:6px;border-bottom:1px solid #e1ebf3}
.tgd-head-title{display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:700;letter-spacing:.5px;color:#2c516d}
.tgd-head-actions{display:inline-flex;align-items:center;gap:4px}
.tgd-search-btn,.tgd-collapse-btn{height:22px;padding:0 7px;border-radius:6px;font-size:8.5px;font-weight:600;color:#3c5c75;background:#eef5fb;border:1px solid #d4e2ec;display:inline-flex;align-items:center;gap:3px}
.tgd-search-btn:hover,.tgd-collapse-btn:hover{background:#e1effa;color:#175b8a;border-color:#a5c4da}
.tgd-tour-banner{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border-radius:11px;background:linear-gradient(135deg,#edf9f7,#e7f3fb);border:1px solid #a9d8d1;text-align:left;transition:transform .16s,box-shadow .16s,border-color .16s}
.tgd-tour-banner:hover{transform:translateY(-1px);border-color:#18847b;box-shadow:0 6px 18px rgba(24,132,123,.15)}
.tgd-tour-banner.active{background:linear-gradient(135deg,#18847b,#176ca3);border-color:transparent;color:#fff;box-shadow:0 8px 22px rgba(24,132,123,.28)}
.tgd-tour-play{width:26px;height:26px;border-radius:8px;background:#18847b;color:#fff;display:grid;place-items:center;font-size:10px;flex:none;box-shadow:0 3px 8px rgba(24,132,123,.25)}
.tgd-tour-banner.active .tgd-tour-play{background:rgba(255,255,255,.22)}
.tgd-tour-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.tgd-tour-text strong{font-size:10.5px;font-weight:700;color:#124e48;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgd-tour-text small{font-size:8px;color:#466c78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgd-tour-banner.active .tgd-tour-text strong,.tgd-tour-banner.active .tgd-tour-text small{color:#fff}
.tgd-tour-arrow{font-size:8.5px;font-weight:700;color:#156860;background:rgba(255,255,255,.75);padding:3px 7px;border-radius:99px;flex:none}
.tgd-tour-banner.active .tgd-tour-arrow{background:rgba(255,255,255,.2);color:#fff}
.tgd-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.tgd-tab{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 7px;border-radius:8px;background:#f4f8fc;border:1px solid #d5e3ed;text-align:left;transition:background .15s,border-color .15s,transform .15s}
.tgd-tab:hover{background:#eaf3fa;border-color:#a5c4da}
.tgd-tab.active{background:linear-gradient(135deg,#2570a4,#1b5f8e);border-color:#1b5f8e;color:#fff;box-shadow:0 3px 10px rgba(27,95,142,.20)}
.tgd-tab-badge{font:700 7px Consolas,monospace;letter-spacing:.4px;color:var(--cap-color,#176ca3)}
.tgd-tab.active .tgd-tab-badge{color:#bce8e3}
.tgd-tab strong{font-size:9.5px;font-weight:700;color:#1b344b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tgd-tab.active strong{color:#fff}
.tgd-domain-panel{padding:8px 9px;border-radius:11px;background:#f5f9fd;border:1px solid #d6e4ef;display:flex;flex-direction:column;gap:6px}
.tgd-domain-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.tgd-domain-top h3{font-size:10.5px;font-weight:700;color:#1b344b;margin:0}
.tgd-domain-top p{font-size:8px;color:#526c82;margin:1px 0 0}
.tgd-focus-zone{flex:none;padding:3px 7px;border-radius:6px;background:#fff;border:1px solid #bfd5e6;color:#176ca3;font-size:8px;font-weight:600}
.tgd-focus-zone:hover{background:#e7f2fa;border-color:#88b2cf}
.tgd-tech-pills{display:flex;flex-wrap:wrap;gap:3.5px}
.tgd-tech-pills span{font-size:7.5px;font-weight:600;padding:2px 5.5px;border-radius:4px;background:#fff;border:1px solid #cfe0ec;color:#28557a}
.tgd-works-list{display:flex;flex-direction:column;gap:4px}
.tgd-work-item{display:flex;align-items:center;gap:4px;padding:3.5px 5px;border-radius:8px;background:#fff;border:1px solid #dce7f0;transition:border-color .15s,box-shadow .15s}
.tgd-work-item:hover{border-color:#94bcd8;box-shadow:0 3px 10px rgba(27,52,75,.07)}
.tgd-work-main{flex:1;min-width:0;display:flex;align-items:center;gap:6px;text-align:left;padding:1px}
.tgd-work-icon{width:22px;height:22px;border-radius:6px;background:#eef5fb;color:#176ca3;display:grid;place-items:center;flex:none}
.tgd-work-icon svg{width:13px;height:13px}
.tgd-work-copy{flex:1;min-width:0;display:flex;flex-direction:column}
.tgd-work-copy strong{font-size:9.5px;font-weight:600;color:#1b344b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgd-work-copy strong em{font:600 7.5px Consolas,monospace;color:#58738a;font-style:normal;margin-left:3px}
.tgd-work-copy small{font-size:7.5px;color:#5a7288;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tgd-work-arch{flex:none;height:22px;padding:0 6px;border-radius:6px;background:#eef6fc;border:1px solid #c5daea;color:#175b8a;font-size:8px;font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
.tgd-work-arch:hover{background:#2570a4;border-color:#2570a4;color:#fff}
.tgd-footer{display:flex;flex-direction:column;gap:5px}
.tgd-showroom-btn{height:31px;font-size:10px;padding:0 10px}

/* 代表作自动巡礼 HUD 控制台 (#tourHudBar) */
.tour-hud-bar{position:absolute;left:50%;bottom:108px;transform:translateX(-50%);z-index:10;width:min(820px,calc(100vw - 40px));padding:9px 14px;border-radius:15px;background:linear-gradient(145deg,rgba(19,39,62,.94),rgba(27,56,86,.92));border:1px solid rgba(164,210,242,.38);box-shadow:0 18px 46px rgba(10,24,42,.32),inset 0 1px 0 rgba(255,255,255,.18);color:#f2f7fc;backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:space-between;gap:12px;animation:rsbPop .22s ease}
.thb-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.thb-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:99px;background:rgba(24,132,123,.32);border:1px solid rgba(93,216,203,.45);color:#8ef0e4;font:700 9px Consolas,"Microsoft YaHei",monospace;white-space:nowrap;flex:none}
.thb-badge i{width:6px;height:6px;border-radius:50%;background:#44e5d3;box-shadow:0 0 8px #44e5d3}
.thb-info{min-width:0;display:flex;flex-direction:column;gap:1px}
.thb-info strong{font-size:11.5px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thb-info strong em{font-style:normal;font-size:9.5px;font-weight:600;color:#8ad4ff;margin-left:6px}
.thb-info span{font-size:9.5px;color:#cbddef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thb-dots{display:flex;align-items:center;gap:5px;flex:none}
.thb-dot{width:8px;height:8px;border-radius:99px;background:rgba(255,255,255,.28);padding:0;transition:width .2s,background .2s}
.thb-dot:hover{background:rgba(255,255,255,.6)}
.thb-dot.active{width:20px;background:#44e5d3}
.thb-controls{display:flex;align-items:center;gap:5px;flex:none}
.thb-btn{height:27px;padding:0 9px;border-radius:7px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#eef6fc;font-size:9.5px;font-weight:600;white-space:nowrap;transition:background .15s}
.thb-btn:hover{background:rgba(255,255,255,.24)}
.thb-btn.primary{background:linear-gradient(135deg,#2570a4,#18847b);border-color:rgba(255,255,255,.35);color:#fff}
.thb-close{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#cbddef;font-size:14px;display:grid;place-items:center}
.thb-close:hover{background:rgba(255,255,255,.24);color:#fff}

/* 3D 悬停工位遥测卡 (#overviewHoverCard) */
.overview-hover-card{position:fixed;left:0;top:0;z-index:12;width:248px;padding:10px 12px;border-radius:13px;background:rgba(255,255,255,.96);border:1px solid #c5d8e7;border-top:3px solid var(--hc-color,#176ca3);box-shadow:0 16px 40px rgba(23,52,78,.18),0 3px 8px rgba(23,52,78,.08);pointer-events:none;backdrop-filter:blur(16px)}
.ohc-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}
.ohc-zone{display:inline-flex;align-items:center;gap:4px;font-size:8.5px;font-weight:700;color:#235175}
.ohc-zone i{width:6px;height:6px;border-radius:50%;background:var(--hc-color,#176ca3);display:inline-block}
.ohc-port{font:600 8px Consolas,monospace;color:#526c82;background:#eef5fb;padding:1px 5px;border-radius:4px}
.ohc-title{display:block;font-size:11.5px;font-weight:700;color:#1b344b;margin-bottom:3px}
.ohc-desc{font-size:9px;line-height:1.5;color:#4a647a;margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ohc-techs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px}
.ohc-techs span{font-size:7.5px;font-weight:600;padding:2px 5px;border-radius:4px;background:#f0f6fb;border:1px solid #d4e2ec;color:#1d5c87}
.ohc-hint{font-size:8px;font-weight:600;color:#176ca3;border-top:1px dashed #dce7f0;padding-top:4px}

/* 作品引导卡 (#workSummary) 增强：前后切换、界面图纸预览、具体技术栈与 3D 双模式按钮 */
.guide-back-dock{padding:3px 8px;border-radius:6px;background:#eef5fb;border:1px solid #cfe0ec;color:#1d5c87;font-size:9px;font-weight:600}
.guide-back-dock:hover{background:#dfeffa;color:#12466e}
.guide-stepper{display:inline-flex;align-items:center;gap:4px;background:#f3f7fb;border:1px solid #d6e4ef;border-radius:99px;padding:1px 4px}
.guide-stepper span{font:700 8.5px Consolas,monospace;color:#3c556b;padding:0 3px}
.guide-step-btn{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:12px;color:#235175;line-height:1}
.guide-step-btn:hover{background:#dfeffa;color:#176ca3}
.summary-blueprint-card{margin:6px 0 8px}
.summary-blueprint-btn{display:block;position:relative;width:100%;padding:0;border-radius:10px;overflow:hidden;border:1px solid #c5d8e7;background:#eaf2f9;box-shadow:0 4px 14px rgba(23,52,78,.08);transition:transform .16s,border-color .16s}
.summary-blueprint-btn:hover{transform:translateY(-1px);border-color:#2570a4}
.summary-blueprint-btn img{display:block;width:100%;height:auto;aspect-ratio:1040/568;object-fit:cover}
.summary-blueprint-badge{position:absolute;right:7px;bottom:7px;padding:3px 8px;border-radius:6px;background:rgba(15,31,51,.84);color:#fff;font-size:8.5px;font-weight:600;backdrop-filter:blur(6px)}
.summary-tech-stack{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;padding:5px 7px;border-radius:8px;background:#f2f7fc;border:1px solid #d8e5f0}
.sts-label{font-size:8px;font-weight:700;color:#176ca3;margin-right:2px}
.summary-tech-stack em{font-style:normal;font-size:8px;font-weight:600;padding:2px 6px;border-radius:4px;background:#fff;border:1px solid #cfe0ec;color:#254e70}
.guide-3d-prominent{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.g3d-btn{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:9px;background:#f3f8fc;border:1px solid #c7daea;color:#1d4e78;text-align:left;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s}
.g3d-btn svg{width:16px;height:16px;flex:none;color:#176ca3}
.g3d-btn span{display:flex;flex-direction:column;min-width:0}
.g3d-btn b{font-size:9.5px;font-weight:700;color:#1b344b;line-height:1.25}
.g3d-btn small{font-size:7.5px;color:#58728a;line-height:1.2}
.g3d-btn:hover{transform:translateY(-1px);background:#e6f2fa;border-color:#8bb4d1;box-shadow:0 4px 12px rgba(23,108,163,.12)}
.g3d-btn.arch-highlight{background:linear-gradient(135deg,#eef7f6,#e6f3fa);border-color:#a5d3ce}
.g3d-btn.arch-highlight svg{color:#18847b}
.g3d-btn.active{background:linear-gradient(135deg,#2570a4,#1b5f8e);border-color:#1b5f8e;color:#fff}
.g3d-btn.active svg,.g3d-btn.active b,.g3d-btn.active small{color:#fff}
.dialog-blueprint-figure{margin:0 0 18px;border-radius:12px;overflow:hidden;border:1px solid #cbdce8;background:#eaf2f9;box-shadow:0 8px 24px rgba(23,52,78,.08)}
.dialog-blueprint-figure img{display:block;width:100%;height:auto}

/* 3D 架构模式顶部/底部层级检视栏 (#archInspectorBar) 与前后作品切换 */
.scene-step-btn{padding:6px 10px!important;font-weight:700;font-size:13px!important;color:#3c556b!important}
.scene-step-btn:hover{background:#eef5fb;color:#176ca3!important}
.arch-inspector-bar{position:absolute;left:50%;bottom:108px;transform:translateX(-50%);z-index:8;width:min(780px,calc(100vw - 44px));padding:10px 14px;border-radius:15px;background:rgba(250,253,255,.95);border:1px solid #c5d8e7;box-shadow:0 16px 42px rgba(23,52,78,.16),inset 0 1px 0 #fff;backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:7px}
.aib-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.aib-title{display:flex;align-items:center;gap:7px;font-size:10px;color:#3c556b}
.aib-title span{font-weight:700;color:#18847b;background:#e8f6f4;border:1px solid #b6e0da;padding:2px 7px;border-radius:6px;font-size:9px}
.aib-title strong{font-size:11.5px;color:#1b344b}
.aib-title small{font-size:8.5px;color:#627b91}
.aib-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.aib-btn{height:25px;padding:0 8px;border-radius:6px;background:#f0f6fb;border:1px solid #cfe0ec;color:#28557a;font-size:9px;font-weight:600;display:inline-flex;align-items:center;gap:4px;transition:background .15s,color .15s}
.aib-btn b{font:700 8px Consolas,monospace;color:#176ca3}
.aib-btn:hover{background:#e1effa;border-color:#9bc0db}
.aib-btn.active{background:linear-gradient(135deg,#2570a4,#1b5f8e);border-color:#1b5f8e;color:#fff}
.aib-btn.active b{color:#bfe8e4}
.aib-blueprint-btn{background:#eef7f6;border-color:#b2dcd6;color:#14635c}
.aib-detail{display:flex;align-items:center;gap:8px;padding-top:6px;border-top:1px dashed #dce7f0;flex-wrap:wrap}
.aib-layer-tag{font-size:8.5px;font-weight:700;color:#1b344b;white-space:nowrap}
.aib-tech-list{display:flex;flex-wrap:wrap;gap:4px}
.aib-tech-list span{font-size:8px;font-weight:600;padding:2px 6px;border-radius:4px;background:#fff;border:1px solid #cbdce8;color:#1d5c87}

/* 研发实力档案 (#personalCard) 指标与动作区 */
.personal-card{top:78px;left:26px;width:288px}
.personal-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 12px}
.personal-metrics>div{display:flex;flex-direction:column;align-items:center;padding:7px 4px;border-radius:9px;background:#eef5fb;border:1px solid #d4e2ec}
.personal-metrics b{font:700 14px/1.2 Consolas,monospace;color:#176ca3}
.personal-metrics b span{font-size:9px;margin-left:1px}
.personal-metrics small{font-size:8px;color:#4c677d;margin-top:2px}
.personal-actions{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}

@media(max-width:800px){
  .header{inset:15px 15px auto}
  .stage-tour-pill span{display:none}
  .stage-tour-pill{width:36px;height:36px;padding:0;justify-content:center;border-radius:8px}
  .tech-guide-dock{left:15px;right:15px;top:auto;bottom:92px;width:auto;max-height:40dvh;padding:10px 11px}
  .tgd-domain-top p{display:none}
  .tour-hud-bar,.arch-inspector-bar{left:15px;right:15px;bottom:90px;transform:none;width:auto;flex-direction:column;align-items:stretch;gap:7px;padding:9px 11px}
  .thb-dots,.overview-hover-card{display:none!important}
  .summary-blueprint-card{display:none}
}

