/* Opt-in THINK proof only. The positional/motion engine owns every button's
   left/top and --node-light; this stylesheet owns only the pixels inside it. */
.trace-render-proof .trace-node:before,.trace-render-proof .trace-node:after,
.trace-render-proof .trace-medallion:before,.trace-render-proof .trace-medallion:after,
.trace-render-proof .trace-face:after{display:none}
.trace-render-proof .trace-medallion{background:none;border-color:transparent;box-shadow:none}
.trace-render-proof .trace-proof-hardware{position:absolute;inset:-11px;pointer-events:none;filter:drop-shadow(2px 5px 3px #000b)}
.trace-render-proof .trace-proof-chassis,.trace-render-proof .trace-proof-specular{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none}
/* Base photography stays readable away from the lamp. The second aligned
   copy adds light to the same material, never another position or animation. */
.trace-render-proof .trace-proof-chassis{filter:brightness(calc(.78 + .16 * var(--node-light))) saturate(calc(.5 + .4 * var(--node-light)))}
.trace-render-proof .trace-proof-specular{filter:brightness(1.48) saturate(1.16);opacity:var(--node-light);mask-image:radial-gradient(ellipse 64% 53% at 45% 10%,#000 15%,#000c 42%,transparent 100%);will-change:opacity}
.trace-render-proof .trace-face{background:none;border-color:transparent;box-shadow:none}
.trace-render-proof .trace-node:hover .trace-face{box-shadow:none}
.trace-render-proof .trace-icon{position:relative;z-index:1;font-size:23px;color:color-mix(in srgb,#adb6b5,#ffebc6 calc(14% + 80% * var(--node-light)));text-shadow:0 -1px 1px #000,0 1px 0 #f6e3c375,1px 2px 2px #000b,0 0 calc(5px * var(--node-light)) #ffcf8560}
.trace-render-proof .trace-proof-hardware:after{display:none}
.trace-render-proof .trace-lamp:before,.trace-render-proof .trace-lamp:after{display:none}
.trace-render-proof .trace-proof-pendant{position:absolute;left:-5px;top:0;width:75px;height:73px;object-fit:fill;pointer-events:none}
.trace-render-proof .trace-lamp i{left:calc(50% - 2px);top:61px;width:4px;height:2px;box-shadow:0 0 3px 1px #fff9e3,0 0 9px 3px #ffdc9a99,0 0 17px 7px rgb(250 191 109 / calc(.07 + .2 * var(--focus-intensity)))}
.trace-render-proof .trace-lamp i:before{display:none}
/* Fine paired rail faces and sparse copper cross-pieces replace the broad
   plate faces. A shared 30-unit pitch bends around the original path. */
.trace-render-proof .trace-shadow{stroke-width:21;filter:drop-shadow(0 5px 3px #000b)}
.trace-render-proof .trace-outer{stroke:#080f15;stroke-width:19}
.trace-render-proof .trace-rail{stroke:url(#trace-proof-steel);stroke-width:16.7;stroke-dasharray:none;opacity:.8}
.trace-render-proof .trace-inner{stroke:#03090e;stroke-width:12.8}
.trace-render-proof .trace-core{stroke:#52616a;stroke-width:1;opacity:.46}
.trace-render-proof .trace-plate{stroke:url(#trace-proof-steel);stroke-width:17;stroke-dasharray:23 7}
.trace-render-proof .trace-plate-bevel{stroke:#1a2831;stroke-width:15.2;stroke-dasharray:23 7;opacity:.92}
.trace-render-proof .trace-plate-inset{stroke:#050c12;stroke-width:11.5;stroke-dasharray:24 6}
.trace-render-proof .trace-secondary-rail{stroke:#4d5e68;stroke-width:6.3;stroke-dasharray:20 10;opacity:.7}
.trace-render-proof .trace-secondary-recess{stroke:#040b10;stroke-width:4.3;stroke-dasharray:22 8}
.trace-render-proof .trace-connector-body{stroke:#514332;stroke-width:13.4;stroke-dasharray:3.4 26.6}
.trace-render-proof .trace-roller{stroke:#a58b68;stroke-width:12.4;stroke-dasharray:1.2 28.8;opacity:.72}
.trace-render-proof .trace-pin{stroke:#ced1be;stroke-width:2;stroke-dasharray:.8 29.2;opacity:.74}
.trace-render-proof .trace-plate-edge{stroke:#c5d1d1;stroke-width:17;stroke-dasharray:.6 29.4 .35 29.65 .8 29.2;mask:url(#trace-proof-rail-edges);opacity:.72}
.trace-render-proof .trace-plate-polish{stroke:#b5c4c6;stroke-width:15.6;stroke-dasharray:8 22 3 27 5 25;mask:url(#trace-proof-rail-edges);opacity:.42}
/* The full-path links already articulate around every curve. Removing the
   second, double-density corner overlay makes their material and pitch match. */
.trace-render-proof .trace-links>g,.trace-render-proof .trace-bend-pin{display:none}
/* The fixed elliptical light field samples distance from the same lamp point
   and 205/132 radii as the engine. Link motion passes continuously through it.
   Its Gaussian stop weights approximate exp(-5.5*d*d); focus intensity is the
   existing continuously computed nearest-node value, also used by the floor. */
.trace-render-proof .trace-glint{opacity:calc(.12 + .88 * var(--focus-intensity));filter:none;stroke-dasharray:none}
.trace-render-proof .trace-lit-rail{stroke:#d5a46b;stroke-width:16.8;stroke-dasharray:23 7;opacity:.68}
.trace-render-proof .trace-lit-edge{stroke:#ffebc9;stroke-width:16;stroke-dasharray:12 18 5 25 8 22;opacity:.9;transform:translateY(-.45px)}
.trace-render-proof .trace-lit-joint{stroke:#fff1d8;stroke-width:17;stroke-dasharray:1 29;opacity:.95}
.trace-render-proof .trace-lit-copper{stroke:#dfb576;stroke-width:12.4;stroke-dasharray:1.2 28.8;opacity:.86}
.trace-render-proof .trace-cone{opacity:calc(.12 + .36 * var(--focus-intensity))}
.trace-render-proof .trace-focus-bloom{width:10%;height:13%;top:17%;opacity:calc(.05 + .5 * var(--focus-intensity))}
.trace-render-proof .trace-floor-reflection{filter:brightness(1.18)}
@media(max-width:900px){.trace-render-proof .trace-proof-hardware{inset:-9px}.trace-render-proof .trace-icon{font-size:20px}}
@media(max-width:600px){.trace-render-proof .trace-icon{font-size:18px}}

/* Occupancy-only labels keep the two dev samples visibly distinct from evidence. */
.trace-render-proof .trace-node[data-trace-dev] .trace-node-label{opacity:1}
