:root{--paper:#ece7df;--ink:#343a34;--muted:#686d62;--green:#325348;--line:#bab5a744;--white:#faf7f0}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{color:var(--ink);background:var(--paper);font:15px/1.6 'Microsoft YaHei','PingFang SC',sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:var(--white);border-radius:8px;min-height:44px;padding:10px 16px;transition:background .2s,transform .2s}button:hover{background:#fff;transform:translateY(-1px)}button:focus-visible,a:focus-visible{outline:3px solid #c88b48;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}button[aria-pressed=true],button[aria-current=page]{background:var(--green);color:#fff;border-color:var(--green)}a{color:inherit}#world{position:fixed;inset:0;touch-action:none}#world canvas{display:block;width:100%;height:100%;outline:none}header{position:fixed;top:24px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;z-index:5;pointer-events:none}header>*{pointer-events:auto}.brand{font-family:'Songti SC','SimSun',serif;font-size:29px;letter-spacing:2px;line-height:1.25}.brand small{display:block;font:11px/2 'Microsoft YaHei',sans-serif;letter-spacing:2px;color:var(--muted);margin-top:4px}.top-actions{display:flex;gap:8px}.top-actions button{background:#faf7f0dc;backdrop-filter:blur(12px)}.top-actions .primary{background:var(--green);color:#fff}.room-intro{position:fixed;left:32px;top:124px;z-index:4;pointer-events:none;max-width:270px}.room-intro .index{color:#7f7e70;font-size:12px;letter-spacing:3px}.room-intro h1{font:34px/1.3 'Songti SC','SimSun',serif;margin:9px 0 13px}.room-intro p{font-size:13px;color:var(--muted);max-width:230px;text-wrap:pretty}.room-intro .rule{width:30px;height:1px;background:#989582;margin-top:22px}.room-nav{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:6;display:flex;gap:5px;padding:7px;background:#faf7f0eb;backdrop-filter:blur(16px);box-shadow:0 8px 40px #51452b14;border:1px solid #fff;border-radius:14px}.room-nav button{border:0;background:none;min-width:136px;display:flex;flex-direction:column;align-items:flex-start;padding:10px 18px;white-space:nowrap}.room-nav button span{font-size:10px;letter-spacing:2px;opacity:.65}.room-nav button strong{font-size:14px;font-weight:500}.room-nav button[aria-current=page]{background:var(--green);color:white}.view-controls{position:fixed;right:28px;bottom:31px;display:flex;gap:5px;z-index:6}.view-controls button{width:44px;padding:0;background:#faf7f0dd;font-size:20px}.gesture{position:fixed;left:32px;bottom:38px;font-size:11px;color:#686a60;z-index:4;pointer-events:none}.gesture b{font-weight:400;color:#353d32;display:block;margin-bottom:3px}.hotspots{position:fixed;inset:0;pointer-events:none;z-index:3}.world-label{position:absolute;transform:translate(-50%,-50%);border-radius:30px;min-height:36px;padding:7px 13px;background:#fffffff0;box-shadow:0 2px 12px #28211613;white-space:nowrap;font-size:12px;pointer-events:auto;border:1px solid #e2ddd3;will-change:left,top}.world-label:hover{transform:translate(-50%,-50%) scale(1.05)}.world-label:before{content:'';display:inline-block;width:6px;height:6px;background:#6c9683;border-radius:50%;margin-right:7px;vertical-align:2px}.world-label.robot{color:white;background:var(--green);border-color:var(--green)}.world-label.robot:before{background:#a4d4c4}.object-dock{position:fixed;right:28px;top:116px;width:272px;background:#faf8f1f0;backdrop-filter:blur(18px);border:1px solid #fff;border-radius:14px;padding:21px;z-index:7;box-shadow:0 14px 40px #55422a12}.object-dock[hidden]{display:none}.dock-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.dock-top span{font-size:11px;letter-spacing:2px;color:var(--muted)}.dock-top button{border:0;background:none;padding:0;min-height:32px;width:32px;font-size:22px}.object-dock h2{font:25px/1.4 'SimSun',serif;margin:8px 0}.object-dock p{font-size:13px;color:var(--muted)}.dock-actions{display:flex;gap:7px;flex-wrap:wrap}.dock-actions button{font-size:12px;padding:8px 12px}.dock-actions .wide{width:100%;background:var(--green);color:white}.object-dock small{font-size:10px;color:var(--muted);display:block;margin-top:16px}.scene-tag{position:fixed;right:30px;top:88px;font-size:10px;color:var(--muted);z-index:4}#loading{position:fixed;inset:0;z-index:20;background:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}#loading[hidden]{display:none}#loading strong{font:28px 'SimSun',serif}#loading p{font-size:13px}#toast{position:fixed;top:92px;left:50%;transform:translate(-50%,-8px);padding:10px 20px;background:var(--green);color:white;border-radius:8px;z-index:30;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;font-size:13px}#toast.visible{opacity:1;transform:translate(-50%,0)}dialog{width:min(900px,calc(100vw - 32px));max-height:86dvh;border:1px solid #fff;background:var(--white);border-radius:18px;padding:0;color:var(--ink);box-shadow:0 30px 100px #1c272b40}dialog::backdrop{background:#1c272b69;backdrop-filter:blur(7px)}.dialog-top{position:sticky;top:0;z-index:2;background:var(--white);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.dialog-top span{font-size:12px;letter-spacing:2px}.dialog-top button{border:0;background:none;font-size:25px;min-height:38px;padding:0 10px}.dialog-body{padding:12px 30px 30px}.dialog-body h2{font:30px/1.5 'SimSun',serif;margin:12px 0}.dialog-body p{color:var(--muted);font-size:14px}.dialog-body video{width:100%;height:min(52vh,520px);background:#101719;border-radius:10px}.dialog-body img{max-width:100%;border-radius:8px}.work-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.work-list button{text-align:left;padding:14px}.work-list img{width:100%;height:170px;object-fit:cover;margin-bottom:9px}.work-list strong,.work-list small{display:block}.work-list small{color:var(--muted);font-size:12px}.note{padding:16px;background:#e8e5db;border-radius:8px}.process{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin:20px 0}.process p{font-size:12px}.fallback{position:fixed;inset:30%;z-index:50;background:var(--white);padding:25px;border-radius:12px}.fallback[hidden]{display:none}#inspect-mode{font-size:11px;letter-spacing:1px;color:var(--green)}@media(max-width:1100px){.room-intro{top:112px;max-width:200px}.room-intro h1{font-size:28px}.room-intro p{max-width:180px}.gesture{bottom:114px}.view-controls{bottom:112px}.room-nav button{min-width:118px}.object-dock{top:105px;width:245px}}@media(max-width:650px){header{left:18px;right:18px;top:17px}.brand{font-size:22px}.brand small{font-size:9px;letter-spacing:1px}.top-actions button{padding:8px 10px;font-size:11px;min-height:40px}.top-actions #guide{display:none}.room-intro{left:18px;top:92px;max-width:55%}.room-intro h1{font-size:25px;margin:5px 0}.room-intro .index{font-size:10px}.room-intro p{font-size:11px;max-width:180px;margin:5px 0}.room-intro .rule{display:none}.scene-tag{right:18px;top:79px;font-size:9px}.room-nav{bottom:16px;width:calc(100% - 24px);gap:0;padding:5px}.room-nav button{min-width:0;flex:1;padding:9px 5px;align-items:center}.room-nav button strong{font-size:11px}.room-nav button span{font-size:9px;letter-spacing:1px}.gesture{left:18px;bottom:95px;font-size:10px}.view-controls{right:17px;bottom:95px}.view-controls button{width:37px;min-height:37px}.world-label{font-size:10px;padding:6px 9px;min-height:32px}.object-dock{left:12px;right:12px;top:auto;bottom:89px;width:auto;padding:12px 16px}.object-dock h2{font-size:20px;margin:3px 0}.object-dock p{margin:5px 0 9px;font-size:12px}.object-dock small{display:none}.dock-top{float:right}.dock-top span{display:none}.dock-actions button{min-height:38px}.dock-actions .wide{width:auto}.dialog-body{padding:8px 18px 22px}.dialog-body h2{font-size:24px}.work-list{grid-template-columns:1fr}.process{grid-template-columns:1fr}.world-label.robot{display:none}#toast{top:72px;max-width:90%;font-size:12px;white-space:nowrap}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
:is(header,.room-intro,.gesture,.scene-tag){transition:color .2s}body[data-night=true] .brand,body[data-night=true] .room-intro h1,body[data-night=true] .gesture b{color:#f8f3e7}body[data-night=true] .brand small,body[data-night=true] .room-intro p,body[data-night=true] .room-intro .index,body[data-night=true] .gesture,body[data-night=true] .scene-tag{color:#e4e0d5}#world canvas:focus-visible{outline:3px solid #c88b48;outline-offset:-3px}@media(max-width:650px){.gesture{bottom:142px}.world-label.robot{display:block}.fallback{inset:20% 18px}}
