*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:transparent}body{font-family:"DengXian","PingFang SC","Microsoft YaHei",sans-serif;color:#315669}.scene-shell{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;padding:20px 8px 50px}.scene-stage{position:relative;width:100%;aspect-ratio:3/2;transform-origin:55% 57%;will-change:transform}.farm-art{display:block;width:100%;height:auto;filter:drop-shadow(0 20px 16px #284f601d)}.farm-overlay,.dynamic-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.farm-overlay{overflow:visible}.dynamic-canvas{opacity:0;transition:opacity .5s}.webgl-ready .dynamic-canvas{opacity:1}.scene-tag{position:absolute;display:flex;align-items:center;gap:6px;padding:4px 9px;background:#f6fcffed;border:1px solid #c3dce3;border-radius:3px;font-size:10px;line-height:1.5;white-space:nowrap;box-shadow:0 3px 10px #183f4d08;opacity:.92;transform:translate(-50%,-100%)}.scene-tag i{width:4px;height:4px;background:#39969e;border-radius:50%}.tag-field{left:36%;top:33%}.tag-core{left:84%;top:45%}.tag-water{left:58%;top:25%;opacity:.55}.scene-note{position:absolute;bottom:14px;left:4%;right:4%;display:flex;align-items:center;gap:14px;font-size:11px;line-height:1.7;color:#536f80}.phase-index{font-size:10px;font-variant-numeric:tabular-nums;color:#3191a0}.phase-track{margin-left:auto;width:80px;height:2px;background:#c9e0e8}.phase-track b{display:block;width:100%;height:100%;background:#319bac;transform:scaleX(0);transform-origin:left}.risk-plot,.irrigation{opacity:0;transition:opacity .8s}.pipe-glow{stroke:#36d5ec;stroke-width:12;opacity:.3;filter:url(#soft-glow)}.pipe-main{stroke:#159cbe;stroke-width:3;opacity:.8}.pipe-flow{stroke:#c2ffff;stroke-width:2.5;stroke-dasharray:12 30}.drip-lines{stroke:#36bfcb;stroke-width:2;stroke-dasharray:3 9;opacity:.75}#scan-footprint,#scan-beam{opacity:0}#sensor-pulse{opacity:.4}.sensor-ring{transform-origin:1019px 642px;animation:sensor-ring 3s linear infinite}.scene-shell[data-phase="1"] .risk-plot,.scene-shell[data-phase="2"] .risk-plot{opacity:1}.scene-shell[data-phase="1"] .tag-core{border-color:#d8a05b;color:#976523}.scene-shell[data-phase="1"] .tag-core i{background:#e09e44}.scene-shell[data-phase="2"] .irrigation{opacity:1}.scene-shell[data-phase="2"] .pipe-flow{animation:flow 2.2s linear infinite}.scene-shell[data-phase="2"] .drip-lines{animation:flow 3s linear infinite}.scene-shell[data-phase="2"] .tag-water{opacity:1;border-color:#54adb8}.scene-shell[data-phase="3"] .risk-plot{fill:#73b781;stroke:#5ba976;opacity:.8}.scene-shell[data-phase="3"] .tag-field{border-color:#7bb895}.paused *{animation-play-state:paused!important}.static .dynamic-canvas,.static #scan-beam,.static #scan-footprint{display:none}.static .sensor-ring{animation:none}.static .phase-track{display:none}@keyframes flow{to{stroke-dashoffset:-84}}@keyframes sensor-ring{0%{transform:scale(.8);opacity:.5}100%{transform:scale(2.3);opacity:0}}@media(max-width:500px){.scene-shell{padding:5px 0 32px}.scene-tag{font-size:8px;padding:2px 5px;gap:4px}.scene-note{bottom:2px;gap:8px;font-size:9px}.phase-index{font-size:8px}.phase-track{width:40px}.farm-art{filter:drop-shadow(0 10px 10px #284f6015)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.scene-stage{will-change:auto}}
/* Ground contact shadows belong to the live 3D objects, not the fallback art. */
#drone-shadow,#rover-shadow{display:none}.webgl-ready #drone-shadow,.webgl-ready #rover-shadow{display:block}.static #drone-shadow,.static #rover-shadow{display:none}
