/* Full-size scene canvas with a small white toolbar. No automatic model downgrade. */
.exploration-3d-backdrop{position:fixed;inset:0;z-index:1000;background:#eef2f4;display:flex;overflow:hidden}.exploration-viewport-wrapper{width:100%;height:100dvh;display:flex;flex-direction:column;position:relative}.exploration-toolbar{display:flex;align-items:center;gap:22px;padding:16px 24px;background:#fff;border-bottom:1px solid #e5ebed;flex-shrink:0;z-index:30}.exploration-toolbar>.btn{white-space:nowrap}.exploration-place{margin-right:auto;min-width:0}.exploration-place>span{font-size:9px;letter-spacing:1px;color:#9aabb5}.exploration-place h1{font-size:16px;margin-top:4px;color:#3d535e;white-space:nowrap}.scene-toolbar-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.scene-toolbar-actions .btn{font-size:10px;min-height:33px;padding:7px 11px;white-space:nowrap}.exploration-canvas-box{flex:1;position:relative;min-height:0;overflow:hidden;touch-action:none}.exploration-canvas{width:100%;height:100%;max-width:none;display:block;outline:0}.scene-loading{position:absolute;inset:0;display:grid;place-items:center;padding:24px;background:#f5f8faef;z-index:50}.scene-loading-card{width:min(440px,100%);background:#fff;border:1px solid #e3eaed;border-radius:15px;padding:32px;box-shadow:0 18px 60px #2030400b}.scene-loading-card h2{font-size:22px;color:#496471;margin:12px 0}.scene-loading-card p{font-size:13px;line-height:1.9;color:#90a3ad;overflow-wrap:anywhere}.scene-loading-track{height:5px;background:#eef3f5;margin:23px 0 17px;border-radius:5px;overflow:hidden}.scene-loading-track>i{display:block;width:5%;height:100%;background:#9cbcc8;transition:width .2s}.scene-loading-card .caption{font-size:10px;color:#a5b4bd;line-height:1.9;display:block}.scene-loading-card .button-row{margin-top:22px}.scene-route{position:absolute;left:20px;top:20px;width:210px;z-index:12;background:#fffffff0;border:1px solid #e4ecef;border-radius:9px;box-shadow:0 5px 20px #21323c08;color:#728c9a}.scene-route summary{font-size:11px;padding:12px 15px;cursor:pointer}.scene-route details>div{padding:0 15px 10px}.scene-route button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;border:0;border-top:1px solid #eef3f5;background:none;text-align:left;padding:11px 0;font-size:10px;color:#7d99a7}.scene-route small{font-size:9px;color:#a9bac4;white-space:nowrap}.pointer-lock-hint{position:absolute;top:22px;left:50%;transform:translateX(-50%);font-size:10px;color:#7f96a3;background:#ffffffdf;border:1px solid #e8eef1;padding:9px 16px;border-radius:6px;pointer-events:none;white-space:nowrap}.exploration-crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:22px;font-weight:300;color:#fff9;text-shadow:0 1px 2px #36444a55;pointer-events:none}.exploration-statusbar{display:flex;justify-content:space-between;gap:20px;background:#fff;border-top:1px solid #e6ebee;padding:11px 24px;color:#9aadb8;font-size:10px;flex-shrink:0}.exploration-statusbar b{padding:0 8px;font-weight:400;color:#cad5db}.exploration-statusbar i{font-style:normal;margin-left:20px}.exploration-interact-prompt{position:absolute;left:50%;bottom:32px;transform:translateX(-50%);z-index:20;display:flex;gap:10px;align-items:center;max-width:min(600px,calc(100% - 40px));padding:12px 17px;background:#fffffff2;border:1px solid #bdd1db;border-radius:9px;color:#7895a4;font-size:12px;line-height:1.8;text-align:left;box-shadow:0 8px 28px #23384016}.exploration-interact-prompt strong{font-weight:500;color:#547a8d}#exploration-inspect-prompt{bottom:90px}.key-pill{padding:3px 7px;background:#eef5f8;color:#83a0af;border:1px solid #d4e2ea;border-radius:4px;font:11px/1.5 monospace;flex-shrink:0}.exploration-boundary-warning{position:absolute;left:50%;bottom:150px;transform:translateX(-50%);background:#fff8f0e8;color:#b29672;border:1px solid #e7dac4;border-radius:7px;padding:9px 16px;font-size:11px;z-index:18}.exploration-radar-box{position:absolute;right:20px;bottom:20px;z-index:12;padding:10px;background:#ffffffeb;border:1px solid #e1e9ed;border-radius:8px;color:#839caa;font-size:10px}.exploration-radar-box summary{cursor:pointer}.exploration-radar-box canvas{margin-top:10px;border-radius:50%}.touch-controls{display:none}.exploration-dialogue-overlay{position:absolute;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:30px;background:#30414f60;backdrop-filter:blur(4px)}.dialogue-card-sheet{max-width:800px;width:100%;max-height:calc(100dvh - 60px);overflow:auto;background:#fff;border:1px solid #e2eaef;border-radius:16px;box-shadow:0 28px 80px #182e4520}.dialogue-sheet-header{padding:25px 28px;border-bottom:1px solid var(--line);display:flex;gap:17px;align-items:center}.sheet-avatar{width:50px;height:50px;flex:0 0 50px;display:grid;place-items:center;border:1px solid #e2ebef;background:#f5f9fb;border-radius:50%;overflow:hidden;font-size:24px}.sheet-avatar-img{width:100%;height:100%;object-fit:cover}.sheet-title-box{flex:1;min-width:0}.sheet-npc-badge{color:#9cabb3;font-size:10px}.sheet-npc-name{font-size:18px;color:#526d7a;margin-top:4px}.sheet-npc-status{color:#a6b3bb;font-size:11px;margin-top:5px}.dialogue-sheet-body{padding:27px 30px}.dialogue-scene-subtitle{font-size:11px;color:#a1b2bb;margin-bottom:17px}.dialogue-opening-text{font-size:14px;color:#687f8b;line-height:2;background:#f8fafb;border:1px solid #ebf1f4;border-radius:9px;padding:23px}.section-lead{font-size:11px;color:#9cafb9;margin:24px 0 14px}.dialogue-options-list{display:grid;gap:12px}.btn-dialogue-item{width:100%;text-align:left;display:flex;gap:15px;padding:18px;border:1px solid #dfe9ed;border-radius:8px;background:#fff;color:#7893a1;line-height:1.9;font-size:12px}.btn-dialogue-item:hover{background:#f3f8fa;border-color:#adc5d1}.opt-bullet{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:5px;background:#edf4f7;color:#8aa7b7;font-size:11px}.dialogue-effects-bar{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px;font-size:11px;color:#85a095}.dialogue-reaction-text,.reaction-text{font-size:14px;line-height:2;color:#6b8592}.dialogue-result,.dialogue-result-panel,.dialogue-reaction-box{padding:20px;border-radius:9px;background:#f6fafb;border:1px solid #e5eef2}.backlash-banner,.public-backlash-banner,.functional-item-awarded-banner,.secret-piece-banner{padding:17px;margin-top:16px;border:1px solid #e3e9ec;border-radius:8px;background:#f8fafb;color:#8096a2;font-size:12px;line-height:1.9}.dialogue-card-sheet .btn-primary{font-size:12px}.dialogue-controls-hint{font-size:10px;color:#a9b9c3}
@media(max-width:1000px){.exploration-toolbar{gap:14px;padding:13px 17px;flex-wrap:wrap}.exploration-place{flex:1}.scene-toolbar-actions{width:100%;overflow-x:auto;flex-wrap:nowrap}.scene-toolbar-actions .btn{flex-shrink:0}.pointer-lock-hint{top:auto;bottom:20px;left:20px;transform:none}.exploration-statusbar{font-size:9px;padding:10px 16px}.exploration-statusbar>span:last-child{display:none}}
@media(pointer:coarse),(max-width:760px){.touch-controls{position:absolute;inset:auto 0 0;height:160px;display:flex;justify-content:space-between;align-items:flex-end;padding:15px 20px max(20px,env(safe-area-inset-bottom));z-index:30;pointer-events:none}.touch-stick{width:112px;height:112px;background:#ffffffbb;border:1px solid #adc5d0bb;border-radius:50%;display:grid;place-items:center;pointer-events:auto;touch-action:none;user-select:none}.touch-stick-knob{width:44px;height:44px;border:1px solid #a4becb;border-radius:50%;background:#c2d7e08c;pointer-events:none}.touch-stick::before{content:'移动';position:absolute;margin-top:77px;font-size:9px;color:#8faab8}.touch-actions{display:grid;grid-template-columns:repeat(2,54px);gap:7px;pointer-events:auto}.touch-actions button{height:44px;border:1px solid #c1d4df;border-radius:9px;background:#ffffffdf;color:#7c9bab;font-size:11px;touch-action:none;user-select:none}.touch-actions button[aria-pressed=true]{background:#8eafbd;color:#fff;border-color:#8eafbd}.exploration-statusbar{display:none}.pointer-lock-hint{display:none!important}.exploration-interact-prompt{bottom:175px;font-size:10px;padding:9px 12px}#exploration-inspect-prompt{bottom:227px}.exploration-radar-box{top:14px;bottom:auto;right:14px}.scene-route{width:160px;top:14px;left:14px}.scene-route summary{padding:10px 12px;font-size:10px}.scene-route button{font-size:9px}.exploration-place>span{font-size:8px;letter-spacing:.5px}.exploration-place h1{font-size:14px}.exploration-toolbar>.btn{font-size:10px;padding:8px 10px;min-height:32px}.scene-toolbar-actions .btn{font-size:9px;padding:6px 10px;min-height:29px}.exploration-dialogue-overlay{padding:12px}.dialogue-card-sheet{max-height:calc(100dvh - 24px);border-radius:12px}.dialogue-sheet-header{padding:19px;gap:12px}.sheet-avatar{width:40px;height:40px;flex-basis:40px}.sheet-npc-name{font-size:15px}.sheet-npc-status{display:none}.dialogue-sheet-body{padding:20px}.dialogue-opening-text{padding:17px;font-size:13px}.btn-dialogue-item{padding:15px;font-size:11px;gap:10px}.scene-loading-card{padding:25px}.scene-loading-card h2{font-size:20px}.scene-loading-card .caption{font-size:9px}}
/* Discoverable interaction targets on every scene. */
.scene-route{width:min(290px,calc(100% - 30px));max-height:min(60%,480px);overflow:auto;background:#fff;border:1px solid #9bb7bc;box-shadow:0 4px 18px #172f3e26;border-radius:8px;color:#193c49}
.scene-route summary{cursor:pointer;font-size:14px;font-weight:700;color:#163d48}.scene-route .interaction-help{font-size:12px;line-height:1.5;color:#425f68;margin:0;padding:0 12px 8px}.scene-route button{width:100%;text-align:left;color:#183e49;font-size:13px;border-top:1px solid #e0eaeb}.scene-route button small{color:#316e69;font-size:11px}.scene-route button:hover,.scene-route button:focus-visible{background:#e2f3ed;color:#174d42}
.dialogue-opening-text{color:#263f49}.sheet-npc-name{color:#183d49}.exploration-interact-prompt{color:#193f4c}.exploration-interact-prompt strong{color:#174e5a}
@media(pointer:coarse),(max-width:760px){.scene-route{width:min(230px,60vw);max-height:30%;}.scene-route summary{font-size:12px}.scene-route button{font-size:12px}.scene-route .interaction-help{font-size:11px}.scene-route button small{font-size:10px}}
/* Screen-space markers identify existing interactive characters, without adding models. */
.npc-marker-layer{position:absolute;inset:0;z-index:15;pointer-events:none}.npc-map-marker{position:absolute;display:flex;align-items:center;gap:5px;transform:translate(-50%,-100%);border:1px solid #b0802c;border-radius:6px;padding:5px 8px;background:#fffdf2;color:#153e45;box-shadow:0 2px 8px #17323c66;font:600 12px/1.3 system-ui,sans-serif;white-space:nowrap;cursor:pointer;pointer-events:auto}.npc-map-marker[hidden]{display:none}.npc-marker-icon{color:#b57816;font-size:15px}.npc-map-marker:hover,.npc-map-marker:focus-visible{background:#fff1c9;outline:2px solid #fff;outline-offset:2px}.dialogue-card-sheet .btn-dialogue-item{color:#203f49;border-color:#b8cbd0;font-size:14px}.dialogue-card-sheet .section-lead{color:#385966;font-size:13px}
@media(pointer:coarse),(max-width:760px){.npc-map-marker{font-size:11px;padding:5px}.npc-marker-icon{font-size:12px}}
